<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Win32k: ddetrack.c 文件参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Win32k
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a03188.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">结构体</a> &#124;
<a href="#define-members">宏定义</a> &#124;
<a href="#typedef-members">类型定义</a> &#124;
<a href="#func-members">函数</a> &#124;
<a href="#var-members">变量</a>  </div>
  <div class="headertitle">
<div class="title">kernel/ddetrack.c 文件参考</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="a03629_source.html">precomp.h</a>&quot;</code><br />
</div>
<p><a href="a03188_source.html">浏览源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
结构体</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02705.html">tagPUBOBJ</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
宏定义</h2></td></tr>
<tr class="memitem:ac5d06f431a0748b08a7b4e89b24ceafa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(str)&#160;&#160;&#160;<a class="el" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="el" href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a>, str)</td></tr>
<tr class="separator:ac5d06f431a0748b08a7b4e89b24ceafa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae33e8110e0717dee8fd7a785fe9e24b3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(s,  a)&#160;&#160;&#160;<a class="el" href="a00371.html#a31aafffb49dfe98bdc749c9b35c90162">RIPMSG1</a>(<a class="el" href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a>, (s), (a))</td></tr>
<tr class="separator:ae33e8110e0717dee8fd7a785fe9e24b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30127ac83fc0e41ffc19694a5d8baba1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a30127ac83fc0e41ffc19694a5d8baba1">TRACE_DDE2</a>(s,  a,  b)&#160;&#160;&#160;<a class="el" href="a00371.html#a906cb0845450a5d5422ce513ecd8a32f">RIPMSG2</a>(<a class="el" href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a>, (s), (a), (b))</td></tr>
<tr class="separator:a30127ac83fc0e41ffc19694a5d8baba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84e8c195994d914d135c5afd6adb1c84"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a84e8c195994d914d135c5afd6adb1c84">TRACE_DDE3</a>(s,  a,  b,  <a class="el" href="a00566.html#aefdbe49968222157e86f468e4563f083">c</a>)&#160;&#160;&#160;<a class="el" href="a00371.html#af713eb6f9b50ac607c1fed71a5f678f8">RIPMSG3</a>(<a class="el" href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a>, (s), (a), (b), (<a class="el" href="a00566.html#aefdbe49968222157e86f468e4563f083">c</a>))</td></tr>
<tr class="separator:a84e8c195994d914d135c5afd6adb1c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21fcc0ef5412430c80187d4b6adcdccc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a21fcc0ef5412430c80187d4b6adcdccc">ValidatePublicObjectList</a>()</td></tr>
<tr class="separator:a21fcc0ef5412430c80187d4b6adcdccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8ea52319ca33f5f02b7813e98b5dc40"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#aa8ea52319ca33f5f02b7813e98b5dc40">TraceDdeMsg</a>(m,  h1,  h2,  <a class="el" href="a00566.html#aefdbe49968222157e86f468e4563f083">c</a>)</td></tr>
<tr class="separator:aa8ea52319ca33f5f02b7813e98b5dc40"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
类型定义</h2></td></tr>
<tr class="memitem:a4a8cfb92e1fca318e530d7fe5309ace7"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a02705.html">tagPUBOBJ</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a4a8cfb92e1fca318e530d7fe5309ace7">PUBOBJ</a></td></tr>
<tr class="separator:a4a8cfb92e1fca318e530d7fe5309ace7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae26fb158e9b14f6f622464adc944244a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a02705.html">tagPUBOBJ</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ae26fb158e9b14f6f622464adc944244a">PPUBOBJ</a></td></tr>
<tr class="separator:ae26fb158e9b14f6f622464adc944244a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:ad9866dc880fb184dc8046ddbc41ce0c4"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ad9866dc880fb184dc8046ddbc41ce0c4">NewConversation</a> (<a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> *ppdcNewClient, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> *ppdcNewServer, <a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndClient, <a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndServer)</td></tr>
<tr class="memdesc:ad9866dc880fb184dc8046ddbc41ce0c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">NewConversation  <a href="a03188.html#ad9866dc880fb184dc8046ddbc41ce0c4">更多...</a><br /></td></tr>
<tr class="separator:ad9866dc880fb184dc8046ddbc41ce0c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc1f6b0b99ae06f21ed9afd412ed58c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#acc1f6b0b99ae06f21ed9afd412ed58c1">FindDdeConv</a> (<a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndProp, <a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndPartner)</td></tr>
<tr class="memdesc:acc1f6b0b99ae06f21ed9afd412ed58c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">FindDdeConv  <a href="a03188.html#acc1f6b0b99ae06f21ed9afd412ed58c1">更多...</a><br /></td></tr>
<tr class="separator:acc1f6b0b99ae06f21ed9afd412ed58c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6a08dfb79864dd1fdd6e00cf938427b"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ab6a08dfb79864dd1fdd6e00cf938427b">AddConvProp</a> (<a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndUs, <a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndThem, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pdcNew, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pdcPartner)</td></tr>
<tr class="memdesc:ab6a08dfb79864dd1fdd6e00cf938427b"><td class="mdescLeft">&#160;</td><td class="mdescRight">AddConvProp  <a href="a03188.html#ab6a08dfb79864dd1fdd6e00cf938427b">更多...</a><br /></td></tr>
<tr class="separator:ab6a08dfb79864dd1fdd6e00cf938427b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77c765954125fe64a79d3da981f5f1c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a77c765954125fe64a79d3da981f5f1c0">Unadvise</a> ( <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:a77c765954125fe64a79d3da981f5f1c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">UNADVISE TRANSACTION PROCESSING * \  <a href="a03188.html#a77c765954125fe64a79d3da981f5f1c0">更多...</a><br /></td></tr>
<tr class="separator:a77c765954125fe64a79d3da981f5f1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5889d7ece1920eaa03963b64a7fe918"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ab5889d7ece1920eaa03963b64a7fe918">Request</a> ( <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:ab5889d7ece1920eaa03963b64a7fe918"><td class="mdescLeft">&#160;</td><td class="mdescRight">REQUEST TRANSACTION PROCESSING * \  <a href="a03188.html#ab5889d7ece1920eaa03963b64a7fe918">更多...</a><br /></td></tr>
<tr class="separator:ab5889d7ece1920eaa03963b64a7fe918"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57267a60553520a876e79828b0eefd60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a57267a60553520a876e79828b0eefd60">SpontaneousTerminate</a> (PDWORD pmessage, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:a57267a60553520a876e79828b0eefd60"><td class="mdescLeft">&#160;</td><td class="mdescRight">TERMINATE TRANSACTION PROCESSING * \  <a href="a03188.html#a57267a60553520a876e79828b0eefd60">更多...</a><br /></td></tr>
<tr class="separator:a57267a60553520a876e79828b0eefd60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a679197aeac8435118b7d0bbc6fe629"><td class="memItemLeft" align="right" valign="top">HANDLE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">AnticipatePost</a> (<a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv, <a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> fnResponse, HANDLE hClient, HANDLE hServer, <a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a> pIntDdeInfo, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags)</td></tr>
<tr class="memdesc:a0a679197aeac8435118b7d0bbc6fe629"><td class="mdescLeft">&#160;</td><td class="mdescRight">HELPER ROUTINES FOR TRANSACTION TRACKING * \  <a href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">更多...</a><br /></td></tr>
<tr class="separator:a0a679197aeac8435118b7d0bbc6fe629"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42b25694b2e9031203dae987afbccfe2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a0fc61225a7d3f9950b01c459dad66f4b">PXSTATE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a42b25694b2e9031203dae987afbccfe2">Createpxs</a> (<a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> fnResponse, HANDLE hClient, HANDLE hServer, <a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a> pIntDdeInfo, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags)</td></tr>
<tr class="memdesc:a42b25694b2e9031203dae987afbccfe2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Createpxs  <a href="a03188.html#a42b25694b2e9031203dae987afbccfe2">更多...</a><br /></td></tr>
<tr class="separator:a42b25694b2e9031203dae987afbccfe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abda85f162ed62c911cf02b42f53a8a61"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#abda85f162ed62c911cf02b42f53a8a61">AbnormalDDEPost</a> (<a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> message)</td></tr>
<tr class="memdesc:abda85f162ed62c911cf02b42f53a8a61"><td class="mdescLeft">&#160;</td><td class="mdescRight">AbnormalDDEPost  <a href="a03188.html#abda85f162ed62c911cf02b42f53a8a61">更多...</a><br /></td></tr>
<tr class="separator:abda85f162ed62c911cf02b42f53a8a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d51f7beeb110632d20c93fa1f730741"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a3d51f7beeb110632d20c93fa1f730741">xxxCopyDdeIn</a> (HANDLE hSrc, PDWORD pflags, PHANDLE phDirect, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="separator:a3d51f7beeb110632d20c93fa1f730741"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42d65ac379b1f0187421a7bd1f19d4ac"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="separator:a42d65ac379b1f0187421a7bd1f19d4ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a012998a925dcedadcacca4505c103d03"><td class="memItemLeft" align="right" valign="top">HANDLE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a012998a925dcedadcacca4505c103d03">xxxCopyDDEOut</a> (<a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a> pIntDdeInfo, PHANDLE phDirect)</td></tr>
<tr class="separator:a012998a925dcedadcacca4505c103d03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48dcaddd811e14502e594b925f8425c2"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a48dcaddd811e14502e594b925f8425c2">FreeListAdd</a> (<a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv, HANDLE hClient, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags)</td></tr>
<tr class="memdesc:a48dcaddd811e14502e594b925f8425c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">FreeListAdd  <a href="a03188.html#a48dcaddd811e14502e594b925f8425c2">更多...</a><br /></td></tr>
<tr class="separator:a48dcaddd811e14502e594b925f8425c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaafd7af5ff85c82b8c72430bc4026fa"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#adaafd7af5ff85c82b8c72430bc4026fa">xxxFreeListFree</a> (<a class="el" href="a00899.html#a58c59789328731021e048007fc0c904c">PFREELIST</a> pfl)</td></tr>
<tr class="memdesc:adaafd7af5ff85c82b8c72430bc4026fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">xxxFreeListFree  <a href="a03188.html#adaafd7af5ff85c82b8c72430bc4026fa">更多...</a><br /></td></tr>
<tr class="separator:adaafd7af5ff85c82b8c72430bc4026fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16a8e4670ddce87ec7227d892f7cc103"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a> (<a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:a16a8e4670ddce87ec7227d892f7cc103"><td class="mdescLeft">&#160;</td><td class="mdescRight">PopState  <a href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">更多...</a><br /></td></tr>
<tr class="separator:a16a8e4670ddce87ec7227d892f7cc103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c49e6f19d941a1747493eaf7131eaeb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a4c49e6f19d941a1747493eaf7131eaeb">UnlinkConv</a> (<a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:a4c49e6f19d941a1747493eaf7131eaeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">UnlinkConv  <a href="a03188.html#a4c49e6f19d941a1747493eaf7131eaeb">更多...</a><br /></td></tr>
<tr class="separator:a4c49e6f19d941a1747493eaf7131eaeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae043671c73200068a05ef48e473fcf4e"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ae043671c73200068a05ef48e473fcf4e">FreeDDEHandle</a> (<a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv, HANDLE hClient, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags)</td></tr>
<tr class="memdesc:ae043671c73200068a05ef48e473fcf4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">FreeDDEHandle  <a href="a03188.html#ae043671c73200068a05ef48e473fcf4e">更多...</a><br /></td></tr>
<tr class="separator:ae043671c73200068a05ef48e473fcf4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a261211d78079bb6310c320826f6b5614"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a261211d78079bb6310c320826f6b5614">ClientFreeDDEHandle</a> (HANDLE hClient, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags)</td></tr>
<tr class="separator:a261211d78079bb6310c320826f6b5614"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a530b8e85574125ff505690b1f386eed6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a530b8e85574125ff505690b1f386eed6">ClientGetDDEFlags</a> (HANDLE hClient, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags)</td></tr>
<tr class="separator:a530b8e85574125ff505690b1f386eed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ae968bf9fe9f887f96d61fca74d654d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a7ae968bf9fe9f887f96d61fca74d654d">xxxClientCopyDDEIn1</a> (HANDLE hSrc, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags)</td></tr>
<tr class="separator:a7ae968bf9fe9f887f96d61fca74d654d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c2c31cc2fbb7833978ec0fee18ebb4e"><td class="memItemLeft" align="right" valign="top">HANDLE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a9c2c31cc2fbb7833978ec0fee18ebb4e">xxxClientCopyDDEOut1</a> (<a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a> pIntDdeInfo)</td></tr>
<tr class="separator:a9c2c31cc2fbb7833978ec0fee18ebb4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5273891192ce260cddebc5a062ade67d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a5273891192ce260cddebc5a062ade67d">xxxClientCopyDDEOut2</a> (<a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a> pIntDdeInfo)</td></tr>
<tr class="separator:a5273891192ce260cddebc5a062ade67d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbc63426f91636c2045e62267284e0d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a03188.html#ae26fb158e9b14f6f622464adc944244a">PPUBOBJ</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#adbc63426f91636c2045e62267284e0d2">IsObjectPublic</a> (HANDLE hObj)</td></tr>
<tr class="separator:adbc63426f91636c2045e62267284e0d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e31e0ef775eeb44f4a0300ebf631a8e"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a9e31e0ef775eeb44f4a0300ebf631a8e">AddPublicObject</a> (<a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a> format, HANDLE hObj, W32PID pid)</td></tr>
<tr class="separator:a9e31e0ef775eeb44f4a0300ebf631a8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b8bd248d8d95a45774942f67436d466"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a7b8bd248d8d95a45774942f67436d466">RemovePublicObject</a> (<a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a> format, HANDLE hObj)</td></tr>
<tr class="separator:a7b8bd248d8d95a45774942f67436d466"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9173e7bc878e95973b1571155d7c472a"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a9173e7bc878e95973b1571155d7c472a">GiveObject</a> (<a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a> format, HANDLE hObj, W32PID pid)</td></tr>
<tr class="separator:a9173e7bc878e95973b1571155d7c472a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64784361de3f90215827f6d66600d58f"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a64784361de3f90215827f6d66600d58f">xxxDDETrackSendHook</a> (<a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndTo, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> message, WPARAM wParam, LONG lParam)</td></tr>
<tr class="memdesc:a64784361de3f90215827f6d66600d58f"><td class="mdescLeft">&#160;</td><td class="mdescRight">xxxDDETrackSendHook  <a href="a03188.html#a64784361de3f90215827f6d66600d58f">更多...</a><br /></td></tr>
<tr class="separator:a64784361de3f90215827f6d66600d58f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a4f1209e6b46089d96dfc7dc5eb5207"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a6a4f1209e6b46089d96dfc7dc5eb5207">xxxDDETrackPostHook</a> (PUINT pmessage, <a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndTo, WPARAM wParam, LPLONG plParam, BOOL fSent)</td></tr>
<tr class="memdesc:a6a4f1209e6b46089d96dfc7dc5eb5207"><td class="mdescLeft">&#160;</td><td class="mdescRight">xxxDDETrackPostHook  <a href="a03188.html#a6a4f1209e6b46089d96dfc7dc5eb5207">更多...</a><br /></td></tr>
<tr class="separator:a6a4f1209e6b46089d96dfc7dc5eb5207"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af647df0fd7600605c1c70baf5ad7540a"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#af647df0fd7600605c1c70baf5ad7540a">xxxDDETrackGetMessageHook</a> (PMSG pmsg)</td></tr>
<tr class="memdesc:af647df0fd7600605c1c70baf5ad7540a"><td class="mdescLeft">&#160;</td><td class="mdescRight">xxxDDETrackGetMessageHook  <a href="a03188.html#af647df0fd7600605c1c70baf5ad7540a">更多...</a><br /></td></tr>
<tr class="separator:af647df0fd7600605c1c70baf5ad7540a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add08e2cb30dfbd4d2b0375a3d1530ead"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#add08e2cb30dfbd4d2b0375a3d1530ead">xxxDDETrackWindowDying</a> (<a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwnd, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:add08e2cb30dfbd4d2b0375a3d1530ead"><td class="mdescLeft">&#160;</td><td class="mdescRight">xxxDDETrackWindowDying  <a href="a03188.html#add08e2cb30dfbd4d2b0375a3d1530ead">更多...</a><br /></td></tr>
<tr class="separator:add08e2cb30dfbd4d2b0375a3d1530ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1736aa2a3f42c62672239d6c68de5e49"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a1736aa2a3f42c62672239d6c68de5e49">xxxUnexpectedServerPost</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:a1736aa2a3f42c62672239d6c68de5e49"><td class="mdescLeft">&#160;</td><td class="mdescRight">xxxUnexpectedServerPost  <a href="a03188.html#a1736aa2a3f42c62672239d6c68de5e49">更多...</a><br /></td></tr>
<tr class="separator:a1736aa2a3f42c62672239d6c68de5e49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada550f39305b3dd33cc9d37e5ae807e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ada550f39305b3dd33cc9d37e5ae807e7">xxxUnexpectedClientPost</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:ada550f39305b3dd33cc9d37e5ae807e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">xxxUnexpectedClientPost  <a href="a03188.html#ada550f39305b3dd33cc9d37e5ae807e7">更多...</a><br /></td></tr>
<tr class="separator:ada550f39305b3dd33cc9d37e5ae807e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ebdfd2dc7703e785b23dbd19493f3be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a0ebdfd2dc7703e785b23dbd19493f3be">xxxAdvise</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:a0ebdfd2dc7703e785b23dbd19493f3be"><td class="mdescLeft">&#160;</td><td class="mdescRight">ADVISE TRANSACTION PROCESSING * \  <a href="a03188.html#a0ebdfd2dc7703e785b23dbd19493f3be">更多...</a><br /></td></tr>
<tr class="separator:a0ebdfd2dc7703e785b23dbd19493f3be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b313cf5692793cb95ccf5a00cd7baf1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a9b313cf5692793cb95ccf5a00cd7baf1">xxxAdviseAck</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="separator:a9b313cf5692793cb95ccf5a00cd7baf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ddf97eb4de9fdb6bf813a19985a5169"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a8ddf97eb4de9fdb6bf813a19985a5169">xxxAdviseData</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:a8ddf97eb4de9fdb6bf813a19985a5169"><td class="mdescLeft">&#160;</td><td class="mdescRight">ADVISE DATA TRANSACTION PROCESSING * \  <a href="a03188.html#a8ddf97eb4de9fdb6bf813a19985a5169">更多...</a><br /></td></tr>
<tr class="separator:a8ddf97eb4de9fdb6bf813a19985a5169"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6c1ae24bc5c183e9393a9f7466a9892"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#af6c1ae24bc5c183e9393a9f7466a9892">xxxAdviseDataAck</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="separator:af6c1ae24bc5c183e9393a9f7466a9892"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4439e1dd9388cf623d4843e5a5c98ed3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a4439e1dd9388cf623d4843e5a5c98ed3">xxxUnadviseAck</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="separator:a4439e1dd9388cf623d4843e5a5c98ed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58f79f90a685158b2cc08f50133111e3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a58f79f90a685158b2cc08f50133111e3">xxxRequestAck</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="separator:a58f79f90a685158b2cc08f50133111e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7eaa978590d0a5b13ab4f062fd2ca65"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ab7eaa978590d0a5b13ab4f062fd2ca65">xxxPoke</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:ab7eaa978590d0a5b13ab4f062fd2ca65"><td class="mdescLeft">&#160;</td><td class="mdescRight">POKE TRANSACTION PROCESSING * \  <a href="a03188.html#ab7eaa978590d0a5b13ab4f062fd2ca65">更多...</a><br /></td></tr>
<tr class="separator:ab7eaa978590d0a5b13ab4f062fd2ca65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7765f90aeab9f1242ed52e1be92fcf08"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a7765f90aeab9f1242ed52e1be92fcf08">xxxPokeAck</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="separator:a7765f90aeab9f1242ed52e1be92fcf08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ce9ba9dcb35119545f8aeccc0c6c8de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a6ce9ba9dcb35119545f8aeccc0c6c8de">xxxExecute</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:a6ce9ba9dcb35119545f8aeccc0c6c8de"><td class="mdescLeft">&#160;</td><td class="mdescRight">EXECUTE TRANSACTION PROCESSING * \  <a href="a03188.html#a6ce9ba9dcb35119545f8aeccc0c6c8de">更多...</a><br /></td></tr>
<tr class="separator:a6ce9ba9dcb35119545f8aeccc0c6c8de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0313121a23f9f5876db0879d044a40c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a0313121a23f9f5876db0879d044a40c0">xxxExecuteAck</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="separator:a0313121a23f9f5876db0879d044a40c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c3d1a4f6661c3410ef3148fe9c86542"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a3c3d1a4f6661c3410ef3148fe9c86542">DupConvTerminate</a> (PDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:a3c3d1a4f6661c3410ef3148fe9c86542"><td class="mdescLeft">&#160;</td><td class="mdescRight">DUPLICATE CONVERSATION TERMINATION * \  <a href="a03188.html#a3c3d1a4f6661c3410ef3148fe9c86542">更多...</a><br /></td></tr>
<tr class="separator:a3c3d1a4f6661c3410ef3148fe9c86542"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9020b04f812be3ab44307bf89a985087"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a9020b04f812be3ab44307bf89a985087">xxxCopyAckIn</a> (LPDWORD pmessage, LPLONG plParam, <a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="memdesc:a9020b04f812be3ab44307bf89a985087"><td class="mdescLeft">&#160;</td><td class="mdescRight">xxxCopyAckIn  <a href="a03188.html#a9020b04f812be3ab44307bf89a985087">更多...</a><br /></td></tr>
<tr class="separator:a9020b04f812be3ab44307bf89a985087"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43930b8020a18f624b36503842b0454d"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a43930b8020a18f624b36503842b0454d">FreeDdeConv</a> (<a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> pDdeConv)</td></tr>
<tr class="separator:a43930b8020a18f624b36503842b0454d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0a7e1279e78983bd5ed90c011389d5c"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ae0a7e1279e78983bd5ed90c011389d5c">_DdeSetQualityOfService</a> (<a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndClient, CONST PSECURITY_QUALITY_OF_SERVICE pqosNew, PSECURITY_QUALITY_OF_SERVICE pqosOld)</td></tr>
<tr class="separator:ae0a7e1279e78983bd5ed90c011389d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6cae71aa8268d1f582a0b744454bdee"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#aa6cae71aa8268d1f582a0b744454bdee">_DdeGetQualityOfService</a> (<a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndClient, <a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndServer, PSECURITY_QUALITY_OF_SERVICE pqos)</td></tr>
<tr class="separator:aa6cae71aa8268d1f582a0b744454bdee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e48f4ffab7c0694b4a12974ef3026a2"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a8e48f4ffab7c0694b4a12974ef3026a2">_ImpersonateDdeClientWindow</a> (<a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndClient, <a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwndServer)</td></tr>
<tr class="separator:a8e48f4ffab7c0694b4a12974ef3026a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af404d275bfc5fe7e3d047b3fa3366ccf"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#af404d275bfc5fe7e3d047b3fa3366ccf">FreeDdeXact</a> (<a class="el" href="a00899.html#a0fc61225a7d3f9950b01c459dad66f4b">PXSTATE</a> pxs)</td></tr>
<tr class="separator:af404d275bfc5fe7e3d047b3fa3366ccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
变量</h2></td></tr>
<tr class="memitem:a7442caa2cd1d84c4de32bc6512a19824"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a03188.html#ae26fb158e9b14f6f622464adc944244a">PPUBOBJ</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a7442caa2cd1d84c4de32bc6512a19824">gpPublicObjectList</a> = NULL</td></tr>
<tr class="separator:a7442caa2cd1d84c4de32bc6512a19824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb683c4e669b34c6ce535d4d8c77aced"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#acb683c4e669b34c6ce535d4d8c77aced">xxxUnexpectedServerPost</a></td></tr>
<tr class="separator:acb683c4e669b34c6ce535d4d8c77aced"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6006542cc1c1b798a4033b658f8df083"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a6006542cc1c1b798a4033b658f8df083">xxxUnexpectedClientPost</a></td></tr>
<tr class="separator:a6006542cc1c1b798a4033b658f8df083"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a450368730732abbab032429ae0e4e6ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a450368730732abbab032429ae0e4e6ee">xxxAdvise</a></td></tr>
<tr class="separator:a450368730732abbab032429ae0e4e6ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1d3f4b172dac30ae87e7e0531596788"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ae1d3f4b172dac30ae87e7e0531596788">xxxAdviseAck</a></td></tr>
<tr class="separator:ae1d3f4b172dac30ae87e7e0531596788"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72d57a23cbe0a924d57f9df300ba9882"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a72d57a23cbe0a924d57f9df300ba9882">xxxAdviseData</a></td></tr>
<tr class="separator:a72d57a23cbe0a924d57f9df300ba9882"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67b24a92e329ae85db344562e7a551db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a67b24a92e329ae85db344562e7a551db">xxxAdviseDataAck</a></td></tr>
<tr class="separator:a67b24a92e329ae85db344562e7a551db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95b5dde532abadf46cbc559013681bf1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a95b5dde532abadf46cbc559013681bf1">xxxUnadviseAck</a></td></tr>
<tr class="separator:a95b5dde532abadf46cbc559013681bf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac75933e505a4fccbfea17fc42cb1cb4e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ac75933e505a4fccbfea17fc42cb1cb4e">xxxRequestAck</a></td></tr>
<tr class="separator:ac75933e505a4fccbfea17fc42cb1cb4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a847ea94107d73805f5dd76f7907feaae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a847ea94107d73805f5dd76f7907feaae">xxxPoke</a></td></tr>
<tr class="separator:a847ea94107d73805f5dd76f7907feaae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2fa39551f202783b275c9849e506b80"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#ac2fa39551f202783b275c9849e506b80">xxxPokeAck</a></td></tr>
<tr class="separator:ac2fa39551f202783b275c9849e506b80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeccc9c52177ec68756ab2170fe26df4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#aeccc9c52177ec68756ab2170fe26df4d">xxxExecute</a></td></tr>
<tr class="separator:aeccc9c52177ec68756ab2170fe26df4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c48d552239777b3b29ca2191f71faa3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a6c48d552239777b3b29ca2191f71faa3">xxxExecuteAck</a></td></tr>
<tr class="separator:a6c48d552239777b3b29ca2191f71faa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72e9e0264b68e38ccf936fb376b17344"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a03188.html#a72e9e0264b68e38ccf936fb376b17344">DupConvTerminate</a></td></tr>
<tr class="separator:a72e9e0264b68e38ccf936fb376b17344"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">宏定义说明</h2>
<a id="ac5d06f431a0748b08a7b4e89b24ceafa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5d06f431a0748b08a7b4e89b24ceafa">&#9670;&nbsp;</a></span>TRACE_DDE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRACE_DDE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">str</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="el" href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a>, str)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00028">28</a> 行定义.</p>

</div>
</div>
<a id="ae33e8110e0717dee8fd7a785fe9e24b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae33e8110e0717dee8fd7a785fe9e24b3">&#9670;&nbsp;</a></span>TRACE_DDE1</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRACE_DDE1</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00371.html#a31aafffb49dfe98bdc749c9b35c90162">RIPMSG1</a>(<a class="el" href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a>, (s), (a))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00029">29</a> 行定义.</p>

</div>
</div>
<a id="a30127ac83fc0e41ffc19694a5d8baba1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30127ac83fc0e41ffc19694a5d8baba1">&#9670;&nbsp;</a></span>TRACE_DDE2</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRACE_DDE2</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00371.html#a906cb0845450a5d5422ce513ecd8a32f">RIPMSG2</a>(<a class="el" href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a>, (s), (a), (b))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00030">30</a> 行定义.</p>

</div>
</div>
<a id="a84e8c195994d914d135c5afd6adb1c84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84e8c195994d914d135c5afd6adb1c84">&#9670;&nbsp;</a></span>TRACE_DDE3</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRACE_DDE3</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><a class="el" href="a00566.html#aefdbe49968222157e86f468e4563f083">c</a>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00371.html#af713eb6f9b50ac607c1fed71a5f678f8">RIPMSG3</a>(<a class="el" href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a>, (s), (a), (b), (<a class="el" href="a00566.html#aefdbe49968222157e86f468e4563f083">c</a>))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00031">31</a> 行定义.</p>

</div>
</div>
<a id="aa8ea52319ca33f5f02b7813e98b5dc40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8ea52319ca33f5f02b7813e98b5dc40">&#9670;&nbsp;</a></span>TraceDdeMsg</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TraceDdeMsg</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">m, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">h1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">h2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><a class="el" href="a00566.html#aefdbe49968222157e86f468e4563f083">c</a>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00089">89</a> 行定义.</p>

</div>
</div>
<a id="a21fcc0ef5412430c80187d4b6adcdccc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21fcc0ef5412430c80187d4b6adcdccc">&#9670;&nbsp;</a></span>ValidatePublicObjectList</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ValidatePublicObjectList</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00088">88</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">类型定义说明</h2>
<a id="ae26fb158e9b14f6f622464adc944244a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae26fb158e9b14f6f622464adc944244a">&#9670;&nbsp;</a></span>PPUBOBJ</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a02705.html">tagPUBOBJ</a> * <a class="el" href="a03188.html#ae26fb158e9b14f6f622464adc944244a">PPUBOBJ</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a4a8cfb92e1fca318e530d7fe5309ace7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a8cfb92e1fca318e530d7fe5309ace7">&#9670;&nbsp;</a></span>PUBOBJ</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a02705.html">tagPUBOBJ</a> <a class="el" href="a03188.html#a4a8cfb92e1fca318e530d7fe5309ace7">PUBOBJ</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">函数说明</h2>
<a id="aa6cae71aa8268d1f582a0b744454bdee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa6cae71aa8268d1f582a0b744454bdee">&#9670;&nbsp;</a></span>_DdeGetQualityOfService()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL _DdeGetQualityOfService </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndServer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PSECURITY_QUALITY_OF_SERVICE&#160;</td>
          <td class="paramname"><em>pqos</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l02038">2038</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;{</div>
<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;    <a class="code" href="a02993.html">PDDECONV</a> pDdeConv;</div>
<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;    PSECURITY_QUALITY_OF_SERVICE pqosClient;</div>
<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; </div>
<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;    <span class="keywordflow">if</span> (pwndServer == NULL) {</div>
<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;<span class="comment">         * Special case to support DDEML-RAW conversations that need to get</span></div>
<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;<span class="comment">         * the QOS prior to initiation completion.</span></div>
<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;        pqosClient = <a class="code" href="a00365.html#a600525b4b6d1cfd74c99b5484051ce5c">_GetProp</a>(pwndClient, PROP_QOS, PROPF_INTERNAL);</div>
<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;        <span class="keywordflow">if</span> (pqosClient == NULL) {</div>
<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;            *pqos = <a class="code" href="a03257.html#a540cc2a0d9039829fe0159c21d957c44">gqosDefault</a>;</div>
<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;            *pqos = *pqosClient;</div>
<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;        }</div>
<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;        <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;    }</div>
<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;    <span class="keywordflow">if</span> (GETPWNDPPI(pwndClient) == GETPWNDPPI(pwndServer)) {</div>
<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;        *pqos = <a class="code" href="a03257.html#a540cc2a0d9039829fe0159c21d957c44">gqosDefault</a>;</div>
<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;        <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;    }</div>
<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;    pDdeConv = <a class="code" href="a03188.html#acc1f6b0b99ae06f21ed9afd412ed58c1">FindDdeConv</a>(pwndClient, pwndServer);</div>
<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;    <span class="keywordflow">if</span> (pDdeConv == NULL) {</div>
<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;    }</div>
<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;    <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a> == NULL) {</div>
<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;    }</div>
<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;    *pqos = pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a>-&gt;<a class="code" href="a02989.html#aab7929442757d5c0fd69fdffbee847ac">qos</a>;</div>
<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;    <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03740_source.html#l00069">_GetProp()</a>, <a class="el" href="a03188_source.html#l01669">FindDdeConv()</a>, <a class="el" href="a03257_source.html#l00160">gqosDefault</a>, <a class="el" href="a00899_source.html#l04673">tagDDECONV::pddei</a> , 以及 <a class="el" href="a00899_source.html#l04657">tagDDEIMP::qos</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03614_source.html#l03131">NtUserDdeGetQualityOfService()</a>.</p>

</div>
</div>
<a id="ae0a7e1279e78983bd5ed90c011389d5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0a7e1279e78983bd5ed90c011389d5c">&#9670;&nbsp;</a></span>_DdeSetQualityOfService()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL _DdeSetQualityOfService </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CONST PSECURITY_QUALITY_OF_SERVICE&#160;</td>
          <td class="paramname"><em>pqosNew</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PSECURITY_QUALITY_OF_SERVICE&#160;</td>
          <td class="paramname"><em>pqosOld</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l02002">2002</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;{</div>
<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;    PSECURITY_QUALITY_OF_SERVICE pqosUser;</div>
<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;    PSECURITY_QUALITY_OF_SERVICE pqosAlloc = NULL;</div>
<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; </div>
<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;<span class="comment">     * ASSUME: calling process is owner of pwndClient - ensured in thunk.</span></div>
<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;    pqosUser = (PSECURITY_QUALITY_OF_SERVICE)<a class="code" href="a00899.html#ac307716e78f28389086bd8b889d4331c">InternalRemoveProp</a>(pwndClient,</div>
<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;            PROP_QOS, PROPF_INTERNAL);</div>
<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;    <span class="keywordflow">if</span> (pqosUser == NULL) {</div>
<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;        <span class="keywordflow">if</span> (RtlEqualMemory(pqosNew, &amp;<a class="code" href="a03257.html#a540cc2a0d9039829fe0159c21d957c44">gqosDefault</a>, <span class="keyword">sizeof</span>(SECURITY_QUALITY_OF_SERVICE))) {</div>
<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;            <span class="keywordflow">return</span>(TRUE);           <span class="comment">// no PROP_QOS property implies default QOS</span></div>
<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;        }</div>
<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;        pqosAlloc = (PSECURITY_QUALITY_OF_SERVICE)UserAllocPool(</div>
<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;                <span class="keyword">sizeof</span>(SECURITY_QUALITY_OF_SERVICE), TAG_DDE2);</div>
<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;        <span class="keywordflow">if</span> (pqosAlloc == NULL) {</div>
<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;            <span class="keywordflow">return</span>(FALSE);          <span class="comment">// memory allocation failure - can&#39;t change from default</span></div>
<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;        }</div>
<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;        pqosUser = pqosAlloc;</div>
<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;    }</div>
<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;    *pqosOld = *pqosUser;</div>
<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;    *pqosUser = *pqosNew;</div>
<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; </div>
<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;    <span class="keywordflow">return</span>(<a class="code" href="a00899.html#a6ffe8ade91d65cba93526ed1596e417f">InternalSetProp</a>(pwndClient, PROP_QOS, pqosUser, PROPF_INTERNAL));</div>
<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03257_source.html#l00160">gqosDefault</a>, <a class="el" href="a03731_source.html#l00098">InternalRemoveProp()</a> , 以及 <a class="el" href="a03731_source.html#l00039">InternalSetProp()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03614_source.html#l03085">NtUserDdeSetQualityOfService()</a>.</p>

</div>
</div>
<a id="a8e48f4ffab7c0694b4a12974ef3026a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e48f4ffab7c0694b4a12974ef3026a2">&#9670;&nbsp;</a></span>_ImpersonateDdeClientWindow()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL _ImpersonateDdeClientWindow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndServer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l02076">2076</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;{</div>
<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;    <a class="code" href="a02993.html">PDDECONV</a> pDdeConv;</div>
<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; </div>
<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;<span class="comment">     * Locate token used in the conversation</span></div>
<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;    pDdeConv = <a class="code" href="a03188.html#acc1f6b0b99ae06f21ed9afd412ed58c1">FindDdeConv</a>(pwndClient, pwndServer);</div>
<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;    <span class="keywordflow">if</span> (pDdeConv == NULL || pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a> == NULL)</div>
<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; </div>
<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;<span class="comment">     * Stick the token into the dde server thread</span></div>
<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;    SeImpersonateClient(&amp;pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a>-&gt;<a class="code" href="a02989.html#a53f5bbc9e842dcb73f8c8dd6199a564b">ClientContext</a>,</div>
<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;            PsGetCurrentThread());</div>
<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;    <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899_source.html#l04658">tagDDEIMP::ClientContext</a>, <a class="el" href="a03188_source.html#l01669">FindDdeConv()</a> , 以及 <a class="el" href="a00899_source.html#l04673">tagDDECONV::pddei</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03614_source.html#l06857">NtUserImpersonateDdeClientWindow()</a>.</p>

</div>
</div>
<a id="abda85f162ed62c911cf02b42f53a8a61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abda85f162ed62c911cf02b42f53a8a61">&#9670;&nbsp;</a></span>AbnormalDDEPost()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> AbnormalDDEPost </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>message</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>AbnormalDDEPost </p>
<p>This is the catch-all routine for wierd cases</p>
<p>returns post action code - DO_POST, FAKE_POST, FAIL_POST.</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01587">1587</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;{</div>
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; </div>
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;<span class="preprocessor">#if DBG</span></div>
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;    <span class="keywordflow">if</span> (message != WM_DDE_TERMINATE) {</div>
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;        <a class="code" href="a00371.html#a906cb0845450a5d5422ce513ecd8a32f">RIPMSG2</a>(<a class="code" href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a>,</div>
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;                <span class="stringliteral">&quot;DDE Post failed (%0lx:%0lx) - protocol violation.&quot;</span>,</div>
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;                PtoH(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>), PtoH(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>));</div>
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;    }</div>
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;<span class="preprocessor">#endif // DBG</span></div>
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; </div>
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;    <span class="comment">// shutdown this conversation by posting a terminate on</span></div>
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;    <span class="comment">// behalf of this guy, then fail all future posts but</span></div>
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;    <span class="comment">// fake a successful terminate.</span></div>
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; </div>
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;    <span class="keywordflow">if</span> (!(pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; CXF_TERMINATE_POSTED)) {</div>
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;        <a class="code" href="a00257.html#a933a4a4818762a03428fe021dd9772a4">_PostMessage</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>, WM_DDE_TERMINATE,</div>
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;                (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>)PtoH(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>), 0);</div>
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;        <span class="comment">// pDdeConv-&gt;flags |= CXF_TERMINATE_POSTED; Set by post hook proc</span></div>
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;    }</div>
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;    <span class="keywordflow">return</span>(message == WM_DDE_TERMINATE ? <a class="code" href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a> : <a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00257.html#a933a4a4818762a03428fe021dd9772a4">_PostMessage()</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a00338_source.html#l00062">FAKE_POST</a>, <a class="el" href="a00899_source.html#l04672">tagDDECONV::flags</a>, <a class="el" href="a00371_source.html#l00029">RIP_WARNING</a>, <a class="el" href="a00371_source.html#l00133">RIPMSG2</a>, <a class="el" href="a00899_source.html#l04667">tagDDECONV::spwnd</a> , 以及 <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00792">xxxUnexpectedClientPost()</a> , 以及 <a class="el" href="a03188_source.html#l00751">xxxUnexpectedServerPost()</a>.</p>

</div>
</div>
<a id="ab6a08dfb79864dd1fdd6e00cf938427b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6a08dfb79864dd1fdd6e00cf938427b">&#9670;&nbsp;</a></span>AddConvProp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL AddConvProp </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndUs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndThem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pdcNew</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pdcPartner</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>AddConvProp </p>
<p>Helper for xxxDDETrackSendHook - associates a new DDECONV struct with a window and initializes it.</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00227">227</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;{</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <a class="code" href="a02993.html">PDDECONV</a> pDdeConv;</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <a class="code" href="a02989.html">PDDEIMP</a> pddei;</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    pDdeConv = (<a class="code" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>)<a class="code" href="a00365.html#a600525b4b6d1cfd74c99b5484051ce5c">_GetProp</a>(pwndUs, PROP_DDETRACK, PROPF_INTERNAL);</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    Lock(&amp;(pdcNew-&gt;<a class="code" href="a02993.html#a25b948ee008e305bdebef4c13d63a9dd">snext</a>), pDdeConv);</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    Lock(&amp;(pdcNew-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>), pwndUs);</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    Lock(&amp;(pdcNew-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>), pwndThem);</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    Lock(&amp;(pdcNew-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>), pdcPartner);</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    pdcNew-&gt;<a class="code" href="a02993.html#a31b3692a13413782dc2eb1c140c39024">spxsIn</a> = NULL;</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    pdcNew-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a> = NULL;</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    pdcNew-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> = flags;</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    pddei = (<a class="code" href="a00899.html#a86fcd7df916502da314369c9c45f4766">PDDEIMP</a>)<a class="code" href="a00365.html#a600525b4b6d1cfd74c99b5484051ce5c">_GetProp</a>((flags &amp; CXF_IS_SERVER) ?</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;            pwndThem : pwndUs, PROP_DDEIMP, PROPF_INTERNAL);</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="keywordflow">if</span> (pddei != NULL) {    <span class="comment">// This can be NULL if a bad WOW app has been</span></div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        pddei-&gt;<a class="code" href="a02989.html#abba13e3637259d948ca78feca1b7eab4">cRefConv</a>++;  <span class="comment">// allowed through for compatability.</span></div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    }</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    pdcNew-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a> = pddei;</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160; </div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <a class="code" href="a00899.html#a73e7ed09abae70f4890c9be9bc70ca95">HMLockObject</a>(pdcNew);         <span class="comment">// lock for property</span></div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <a class="code" href="a00899.html#a6ffe8ade91d65cba93526ed1596e417f">InternalSetProp</a>(pwndUs, PROP_DDETRACK, pdcNew, PROPF_INTERNAL);</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03740_source.html#l00069">_GetProp()</a>, <a class="el" href="a00899_source.html#l04660">tagDDEIMP::cRefConv</a>, <a class="el" href="a00899_source.html#l04672">tagDDECONV::flags</a>, <a class="el" href="a00899.html#a73e7ed09abae70f4890c9be9bc70ca95">HMLockObject()</a>, <a class="el" href="a03731_source.html#l00039">InternalSetProp()</a>, <a class="el" href="a00899_source.html#l04673">tagDDECONV::pddei</a>, <a class="el" href="a00899_source.html#l04665">tagDDECONV::snext</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04667">tagDDECONV::spwnd</a>, <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>, <a class="el" href="a00899_source.html#l04670">tagDDECONV::spxsIn</a> , 以及 <a class="el" href="a00899_source.html#l04669">tagDDECONV::spxsOut</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01624">NewConversation()</a>.</p>

</div>
</div>
<a id="a9e31e0ef775eeb44f4a0300ebf631a8e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e31e0ef775eeb44f4a0300ebf631a8e">&#9670;&nbsp;</a></span>AddPublicObject()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL AddPublicObject </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a>&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hObj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">W32PID&#160;</td>
          <td class="paramname"><em>pid</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l02160">2160</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;{</div>
<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;    <a class="code" href="a02705.html">PPUBOBJ</a> ppo;</div>
<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; </div>
<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;    <span class="keywordflow">switch</span> (format) {</div>
<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;    <span class="keywordflow">case</span> CF_BITMAP:</div>
<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;    <span class="keywordflow">case</span> CF_DSPBITMAP:</div>
<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;    <span class="keywordflow">case</span> CF_PALETTE:</div>
<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160; </div>
<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;    <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;    }</div>
<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160; </div>
<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;    ppo = <a class="code" href="a03188.html#adbc63426f91636c2045e62267284e0d2">IsObjectPublic</a>(hObj);</div>
<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;    <span class="keywordflow">if</span> (ppo == NULL) {</div>
<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;        ppo = UserAllocPool(<span class="keyword">sizeof</span>(<a class="code" href="a02705.html">PUBOBJ</a>), TAG_DDE4);</div>
<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;        <span class="keywordflow">if</span> (ppo == NULL) {</div>
<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;            <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;        }</div>
<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;        ppo-&gt;<a class="code" href="a02705.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a> = 1;</div>
<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;        ppo-&gt;<a class="code" href="a02705.html#a0f2e0011aa3551157b6949798bf93098">hObj</a> = hObj;</div>
<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;        ppo-&gt;<a class="code" href="a02705.html#ae07f487208abfbf55a3d620391466345">pid</a> = pid;</div>
<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;        ppo-&gt;<a class="code" href="a02705.html#aea3bc6c333934fbac2cd9cdea301c49f">next</a> = <a class="code" href="a03188.html#a7442caa2cd1d84c4de32bc6512a19824">gpPublicObjectList</a>;</div>
<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;        <a class="code" href="a03188.html#a7442caa2cd1d84c4de32bc6512a19824">gpPublicObjectList</a> = ppo;</div>
<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160;        <a class="code" href="a03188.html#a9173e7bc878e95973b1571155d7c472a">GiveObject</a>(format, hObj, OBJECT_OWNER_PUBLIC);</div>
<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;        ppo-&gt;<a class="code" href="a02705.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>++;</div>
<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;    }</div>
<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;    <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l00020">tagPUBOBJ::count</a>, <a class="el" href="a03188_source.html#l02239">GiveObject()</a>, <a class="el" href="a03188_source.html#l00026">gpPublicObjectList</a>, <a class="el" href="a03188_source.html#l00019">tagPUBOBJ::hObj</a>, <a class="el" href="a03188_source.html#l02145">IsObjectPublic()</a>, <a class="el" href="a03188_source.html#l00018">tagPUBOBJ::next</a> , 以及 <a class="el" href="a03188_source.html#l00024">tagPUBOBJ::pid</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00918">xxxAdviseData()</a>, <a class="el" href="a03188_source.html#l01217">xxxPoke()</a> , 以及 <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a>.</p>

</div>
</div>
<a id="a0a679197aeac8435118b7d0bbc6fe629"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a679197aeac8435118b7d0bbc6fe629">&#9670;&nbsp;</a></span>AnticipatePost()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">HANDLE AnticipatePost </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td>
          <td class="paramname"><em>fnResponse</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hServer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a>&#160;</td>
          <td class="paramname"><em>pIntDdeInfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>HELPER ROUTINES FOR TRANSACTION TRACKING * \ </p>
<p>AnticipatePost</p>
<p>Allocates, fills and links XSTATE structures.</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01492">1492</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;{</div>
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxs;</div>
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; </div>
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;    pxs = <a class="code" href="a03188.html#a42b25694b2e9031203dae987afbccfe2">Createpxs</a>(fnResponse, hClient, hServer, pIntDdeInfo, flags);</div>
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;    <span class="keywordflow">if</span> (pxs != NULL) {</div>
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;        pxs-&gt;<a class="code" href="a02997.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.<a class="code" href="a02545.html#a774eeae0f007ae3ea612baf38cd38936">pti</a> = pDdeConv-&gt;<a class="code" href="a02993.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.<a class="code" href="a02545.html#a774eeae0f007ae3ea612baf38cd38936">pti</a>;</div>
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;        <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a> == NULL) {</div>
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;            <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a31b3692a13413782dc2eb1c140c39024">spxsIn</a> == NULL);</div>
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;            Lock(&amp;(pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>), pxs);</div>
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;            Lock(&amp;(pDdeConv-&gt;<a class="code" href="a02993.html#a31b3692a13413782dc2eb1c140c39024">spxsIn</a>), pxs);</div>
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;            <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a31b3692a13413782dc2eb1c140c39024">spxsIn</a> != NULL);</div>
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;            Lock(&amp;(pDdeConv-&gt;<a class="code" href="a02993.html#a31b3692a13413782dc2eb1c140c39024">spxsIn</a>-&gt;<a class="code" href="a02997.html#a89bbd7240a39acee22034e3eeeb020f6">snext</a>), pxs);</div>
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;            Lock(&amp;(pDdeConv-&gt;<a class="code" href="a02993.html#a31b3692a13413782dc2eb1c140c39024">spxsIn</a>), pxs);</div>
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;        }</div>
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;<span class="preprocessor">#if 0</span></div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;        {</div>
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;            <span class="keywordtype">int</span> i;</div>
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;            <a class="code" href="a02553.html">HANDLEENTRY</a> *phe;</div>
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; </div>
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;            <span class="keywordflow">for</span> (i = 0, phe = <a class="code" href="a00020.html#ac02f0141c423acd033ecdd2a757a3cc1">gSharedInfo</a>.<a class="code" href="a02521.html#aba571224616f70b9a072015bc9873676">aheList</a>;</div>
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;                i &lt;= (<span class="keywordtype">int</span>)<a class="code" href="a03257.html#ab302ed5096d732e53f944c97b8321ba0">giheLast</a>;</div>
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;                    i++) {</div>
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;                <span class="keywordflow">if</span> (phe[i].bType == TYPE_DDEXACT) {</div>
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;                    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(((<a class="code" href="a02997.html">PXSTATE</a>)(phe[i].phead))-&gt;snext != pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>);</div>
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;                }</div>
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;                <span class="keywordflow">if</span> (phe[i].bType == TYPE_DDECONV &amp;&amp;</div>
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;                        (<a class="code" href="a02993.html">PDDECONV</a>)phe[i].phead != pDdeConv) {</div>
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;                    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(((<a class="code" href="a02993.html">PDDECONV</a>)(phe[i].phead))-&gt;spxsOut != pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>);</div>
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;                    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(((<a class="code" href="a02993.html">PDDECONV</a>)(phe[i].phead))-&gt;spxsIn != pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>);</div>
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;                }</div>
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;            }</div>
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;        }</div>
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;    }</div>
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;    <span class="keywordflow">return</span>(PtoH(pxs));</div>
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00365_source.html#l01060">tagSHAREDINFO::aheList</a>, <a class="el" href="a03188_source.html#l01547">Createpxs()</a>, <a class="el" href="a03257_source.html#l00065">giheLast</a>, <a class="el" href="a00020_source.html#l00040">gSharedInfo</a>, <a class="el" href="a00899_source.html#l04664">tagDDECONV::head</a>, <a class="el" href="a00899_source.html#l04680">tagXSTATE::head</a>, <a class="el" href="a00365_source.html#l01140">_THROBJHEAD::pti</a>, <a class="el" href="a00899_source.html#l04681">tagXSTATE::snext</a>, <a class="el" href="a00899_source.html#l04670">tagDDECONV::spxsIn</a>, <a class="el" href="a00899_source.html#l04669">tagDDECONV::spxsOut</a> , 以及 <a class="el" href="a00950_source.html#l00117">UserAssert</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01098">Request()</a>, <a class="el" href="a03188_source.html#l01061">Unadvise()</a>, <a class="el" href="a03188_source.html#l00838">xxxAdvise()</a>, <a class="el" href="a03188_source.html#l00918">xxxAdviseData()</a>, <a class="el" href="a03188_source.html#l00157">xxxDDETrackSendHook()</a>, <a class="el" href="a03188_source.html#l01326">xxxExecute()</a>, <a class="el" href="a03188_source.html#l01217">xxxPoke()</a> , 以及 <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a>.</p>

</div>
</div>
<a id="a261211d78079bb6310c320826f6b5614"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a261211d78079bb6310c320826f6b5614">&#9670;&nbsp;</a></span>ClientFreeDDEHandle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> ClientFreeDDEHandle </td>
          <td>(</td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01775">FreeDDEHandle()</a> , 以及 <a class="el" href="a03188_source.html#l01799">xxxFreeListFree()</a>.</p>

</div>
</div>
<a id="a530b8e85574125ff505690b1f386eed6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a530b8e85574125ff505690b1f386eed6">&#9670;&nbsp;</a></span>ClientGetDDEFlags()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> ClientGetDDEFlags </td>
          <td>(</td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a>.</p>

</div>
</div>
<a id="a42b25694b2e9031203dae987afbccfe2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42b25694b2e9031203dae987afbccfe2">&#9670;&nbsp;</a></span>Createpxs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a0fc61225a7d3f9950b01c459dad66f4b">PXSTATE</a> Createpxs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a>&#160;</td>
          <td class="paramname"><em>fnResponse</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hServer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a>&#160;</td>
          <td class="paramname"><em>pIntDdeInfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Createpxs </p>
<p>Allocates and fills XSTATE structures.</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01547">1547</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;{</div>
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxs;</div>
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; </div>
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;    pxs = <a class="code" href="a00695.html#a857d137de0592e36caec4b6e0f5021cb">HMAllocObject</a>(<a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>(), NULL, TYPE_DDEXACT, <span class="keyword">sizeof</span>(<a class="code" href="a02997.html">XSTATE</a>));</div>
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;    <span class="keywordflow">if</span> (pxs == NULL) {</div>
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a>, <span class="stringliteral">&quot;Unable to alloc DDEXACT&quot;</span>);</div>
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;        <span class="keywordflow">return</span>(NULL);</div>
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;    }</div>
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;    pxs-&gt;<a class="code" href="a02997.html#a89bbd7240a39acee22034e3eeeb020f6">snext</a> = NULL;</div>
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;    pxs-&gt;<a class="code" href="a02997.html#a2a67c5458463585258b56b4ed6919bed">fnResponse</a> = fnResponse;</div>
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;    pxs-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a> = hClient;</div>
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;    pxs-&gt;<a class="code" href="a02997.html#a36fe11d5a7a27923af9b2899a24e5464">hServer</a> = hServer;</div>
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;    pxs-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a> = pIntDdeInfo;</div>
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;    pxs-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> = flags;</div>
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;    <a class="code" href="a03188.html#a21fcc0ef5412430c80187d4b6adcdccc">ValidatePublicObjectList</a>();</div>
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(pxs-&gt;<a class="code" href="a02997.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.cLockObj == 0);</div>
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;    <span class="keywordflow">return</span>(pxs);</div>
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899_source.html#l04686">tagXSTATE::flags</a>, <a class="el" href="a00899_source.html#l04682">tagXSTATE::fnResponse</a>, <a class="el" href="a00899_source.html#l04683">tagXSTATE::hClient</a>, <a class="el" href="a00899_source.html#l04680">tagXSTATE::head</a>, <a class="el" href="a00695_source.html#l00314">HMAllocObject()</a>, <a class="el" href="a00899_source.html#l04684">tagXSTATE::hServer</a>, <a class="el" href="a00899_source.html#l04685">tagXSTATE::pIntDdeInfo</a>, <a class="el" href="a00263_source.html#l00526">PtiCurrent()</a>, <a class="el" href="a00371_source.html#l00029">RIP_WARNING</a>, <a class="el" href="a00371_source.html#l00131">RIPMSG0</a>, <a class="el" href="a00899_source.html#l04681">tagXSTATE::snext</a>, <a class="el" href="a00950_source.html#l00117">UserAssert</a> , 以及 <a class="el" href="a03188_source.html#l00088">ValidatePublicObjectList</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01492">AnticipatePost()</a>, <a class="el" href="a03188_source.html#l00918">xxxAdviseData()</a>, <a class="el" href="a03188_source.html#l01694">xxxCopyAckIn()</a>, <a class="el" href="a03188_source.html#l01375">xxxExecuteAck()</a> , 以及 <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a>.</p>

</div>
</div>
<a id="a3c3d1a4f6661c3410ef3148fe9c86542"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c3d1a4f6661c3410ef3148fe9c86542">&#9670;&nbsp;</a></span>DupConvTerminate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> DupConvTerminate </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>DUPLICATE CONVERSATION TERMINATION * \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01459">1459</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;{</div>
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; </div>
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;DupConvTerminate&quot;</span>);</div>
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; </div>
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;    <span class="keywordflow">if</span> (*pmessage != WM_DDE_TERMINATE) {</div>
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#acb683c4e669b34c6ce535d4d8c77aced">xxxUnexpectedServerPost</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;    }</div>
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; </div>
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;    <a class="code" href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a>(pDdeConv);</div>
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;    <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a>);</div>
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00338_source.html#l00062">FAKE_POST</a>, <a class="el" href="a03188_source.html#l01831">PopState()</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a> , 以及 <a class="el" href="a03188_source.html#l00038">xxxUnexpectedServerPost</a>.</p>

</div>
</div>
<a id="acc1f6b0b99ae06f21ed9afd412ed58c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc1f6b0b99ae06f21ed9afd412ed58c1">&#9670;&nbsp;</a></span>FindDdeConv()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> FindDdeConv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndProp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndPartner</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>FindDdeConv </p>
<p>Locates the pDdeConv associated with pwndProp, and pwndPartner. Only searches pwndProp's property list.</p>
<p>History: 3-31-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01669">1669</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;{</div>
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;    <a class="code" href="a02993.html">PDDECONV</a> pDdeConv;</div>
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; </div>
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;    pDdeConv = (<a class="code" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>)<a class="code" href="a00365.html#a600525b4b6d1cfd74c99b5484051ce5c">_GetProp</a>(pwndProp, PROP_DDETRACK, PROPF_INTERNAL);</div>
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;    <span class="keywordflow">while</span> (pDdeConv != NULL &amp;&amp; pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a> != pwndPartner) {</div>
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;        pDdeConv = pDdeConv-&gt;<a class="code" href="a02993.html#a25b948ee008e305bdebef4c13d63a9dd">snext</a>;</div>
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;    }</div>
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; </div>
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;    <span class="keywordflow">return</span>(pDdeConv);</div>
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03740_source.html#l00069">_GetProp()</a>, <a class="el" href="a00899_source.html#l04665">tagDDECONV::snext</a> , 以及 <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l02038">_DdeGetQualityOfService()</a>, <a class="el" href="a03188_source.html#l02076">_ImpersonateDdeClientWindow()</a>, <a class="el" href="a03188_source.html#l00553">xxxDDETrackGetMessageHook()</a>, <a class="el" href="a03188_source.html#l00324">xxxDDETrackPostHook()</a> , 以及 <a class="el" href="a03188_source.html#l00157">xxxDDETrackSendHook()</a>.</p>

</div>
</div>
<a id="a43930b8020a18f624b36503842b0454d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43930b8020a18f624b36503842b0454d">&#9670;&nbsp;</a></span>FreeDdeConv()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID FreeDdeConv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01872">1872</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;{</div>
<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;    <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;FreeDdeConv(%x)&quot;</span>, pDdeConv);</div>
<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160; </div>
<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;    <span class="keywordflow">if</span> (!(pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; CXF_TERMINATE_POSTED) &amp;&amp;</div>
<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;            !HMIsMarkDestroy(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>)) {</div>
<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;        <a class="code" href="a00257.html#a933a4a4818762a03428fe021dd9772a4">_PostMessage</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>, WM_DDE_TERMINATE,</div>
<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;                (WPARAM)PtoH(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>), 0);</div>
<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;        <span class="comment">// pDdeConv-&gt;flags |= CXF_TERMINATE_POSTED; set by PostHookProc</span></div>
<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;    }</div>
<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;    <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a> != NULL &amp;&amp;</div>
<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;            GETPTI(pDdeConv)-&gt;TIF_flags &amp; TIF_INCLEANUP) {</div>
<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;<span class="comment">         * Fake that the other side already posted a terminate.</span></div>
<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;<span class="comment">         * This prevents vestigal dde structures from hanging</span></div>
<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;<span class="comment">         * around after thread cleanup if the conversation structure</span></div>
<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;<span class="comment">         * is destroyed before the associated window.</span></div>
<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;        pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> |= CXF_TERMINATE_POSTED;</div>
<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;    }</div>
<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160; </div>
<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;    <a class="code" href="a03188.html#a4c49e6f19d941a1747493eaf7131eaeb">UnlinkConv</a>(pDdeConv);</div>
<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; </div>
<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;    <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a> != NULL) {</div>
<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;        pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a>-&gt;<a class="code" href="a02989.html#abba13e3637259d948ca78feca1b7eab4">cRefConv</a>--;</div>
<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;        <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a>-&gt;<a class="code" href="a02989.html#abba13e3637259d948ca78feca1b7eab4">cRefConv</a> == 0 &amp;&amp; pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a>-&gt;<a class="code" href="a02989.html#ae7891216bb177b3f795ab55b2a78e1cc">cRefInit</a> == 0) {</div>
<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;            SeDeleteClientSecurity(&amp;pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a>-&gt;<a class="code" href="a02989.html#a53f5bbc9e842dcb73f8c8dd6199a564b">ClientContext</a>);</div>
<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;            UserFreePool(pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a>);</div>
<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;        }</div>
<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;        pDdeConv-&gt;<a class="code" href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">pddei</a> = NULL;</div>
<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;    }</div>
<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160; </div>
<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;    Unlock(&amp;(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>));</div>
<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;    Unlock(&amp;(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>));</div>
<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;    Unlock(&amp;(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>));</div>
<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; </div>
<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a00695.html#aa3a7eff0cc4eabef6217efe2eba1e47f">HMMarkObjectDestroy</a>((<a class="code" href="a02537.html">PHEAD</a>)pDdeConv)) {</div>
<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;        <span class="keywordflow">while</span> (pDdeConv-&gt;spxsOut) {</div>
<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;            <a class="code" href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a>(pDdeConv);</div>
<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;        }</div>
<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; </div>
<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;        <a class="code" href="a00695.html#a4e6ee8871cf6323bdd048608605667b1">HMFreeObject</a>(pDdeConv);</div>
<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;    }</div>
<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00257.html#a933a4a4818762a03428fe021dd9772a4">_PostMessage()</a>, <a class="el" href="a00899_source.html#l04658">tagDDEIMP::ClientContext</a>, <a class="el" href="a00899_source.html#l04660">tagDDEIMP::cRefConv</a>, <a class="el" href="a00899_source.html#l04659">tagDDEIMP::cRefInit</a>, <a class="el" href="a00899_source.html#l04672">tagDDECONV::flags</a>, <a class="el" href="a00695_source.html#l00575">HMFreeObject()</a>, <a class="el" href="a00695_source.html#l00757">HMMarkObjectDestroy()</a>, <a class="el" href="a00899_source.html#l04673">tagDDECONV::pddei</a>, <a class="el" href="a03188_source.html#l01831">PopState()</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04667">tagDDECONV::spwnd</a>, <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>, <a class="el" href="a03188_source.html#l00029">TRACE_DDE1</a> , 以及 <a class="el" href="a03188_source.html#l00268">UnlinkConv()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00695_source.html#l01437">HMDestroyUnlockedObject()</a>, <a class="el" href="a03188_source.html#l00553">xxxDDETrackGetMessageHook()</a> , 以及 <a class="el" href="a03188_source.html#l00682">xxxDDETrackWindowDying()</a>.</p>

</div>
</div>
<a id="ae043671c73200068a05ef48e473fcf4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae043671c73200068a05ef48e473fcf4e">&#9670;&nbsp;</a></span>FreeDDEHandle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID FreeDDEHandle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>FreeDDEHandle </p>
<p>Frees contents DDE client side handle - delayed free if a WOW process.</p>
<p>History: 7-28-94 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01775">1775</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;{</div>
<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>()-&gt;TIF_flags &amp; TIF_16BIT) {</div>
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160;        <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;FreeDDEHandle: (WOW hack) delayed Freeing %x.&quot;</span>, hClient);</div>
<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;        <a class="code" href="a03188.html#a48dcaddd811e14502e594b925f8425c2">FreeListAdd</a>(pDdeConv, hClient, flags);</div>
<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;        <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;FreeDDEHandle: Freeing %x.&quot;</span>, hClient);</div>
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;        <a class="code" href="a03188.html#a261211d78079bb6310c320826f6b5614">ClientFreeDDEHandle</a>(hClient, flags);</div>
<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;    }</div>
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188.html#a261211d78079bb6310c320826f6b5614">ClientFreeDDEHandle()</a>, <a class="el" href="a03188_source.html#l01746">FreeListAdd()</a>, <a class="el" href="a00263_source.html#l00526">PtiCurrent()</a> , 以及 <a class="el" href="a03188_source.html#l00029">TRACE_DDE1</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00918">xxxAdviseData()</a>, <a class="el" href="a03188_source.html#l00998">xxxAdviseDataAck()</a>, <a class="el" href="a03188_source.html#l00324">xxxDDETrackPostHook()</a>, <a class="el" href="a03188_source.html#l01280">xxxPokeAck()</a>, <a class="el" href="a03188_source.html#l00792">xxxUnexpectedClientPost()</a> , 以及 <a class="el" href="a03188_source.html#l00751">xxxUnexpectedServerPost()</a>.</p>

</div>
</div>
<a id="af404d275bfc5fe7e3d047b3fa3366ccf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af404d275bfc5fe7e3d047b3fa3366ccf">&#9670;&nbsp;</a></span>FreeDdeXact()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID FreeDdeXact </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a0fc61225a7d3f9950b01c459dad66f4b">PXSTATE</a>&#160;</td>
          <td class="paramname"><em>pxs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l02100">2100</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;{</div>
<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a00695.html#aa3a7eff0cc4eabef6217efe2eba1e47f">HMMarkObjectDestroy</a>(pxs)) {</div>
<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;<span class="preprocessor">#if 0</span></div>
<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;        {</div>
<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;            <span class="keywordtype">int</span> i;</div>
<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;            <a class="code" href="a02553.html">HANDLEENTRY</a> *phe;</div>
<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; </div>
<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;            <span class="keywordflow">for</span> (i = 0, phe = <a class="code" href="a00020.html#ac02f0141c423acd033ecdd2a757a3cc1">gSharedInfo</a>.<a class="code" href="a02521.html#aba571224616f70b9a072015bc9873676">aheList</a>;</div>
<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;                i &lt;= <a class="code" href="a03257.html#ab302ed5096d732e53f944c97b8321ba0">giheLast</a>;</div>
<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;                    i++) {</div>
<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;                <span class="keywordflow">if</span> (phe[i].bType == TYPE_DDEXACT) {</div>
<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;                    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(((<a class="code" href="a02997.html">PXSTATE</a>)(phe[i].phead))-&gt;snext != pxs);</div>
<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;                }</div>
<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;                <span class="keywordflow">if</span> (phe[i].bType == TYPE_DDECONV) {</div>
<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;                    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(((<a class="code" href="a02993.html">PDDECONV</a>)(phe[i].phead))-&gt;spxsOut != pxs);</div>
<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;                    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(((<a class="code" href="a02993.html">PDDECONV</a>)(phe[i].phead))-&gt;spxsIn != pxs);</div>
<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;                }</div>
<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;            }</div>
<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;        }</div>
<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;        <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(pxs-&gt;<a class="code" href="a02997.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.cLockObj == 0);</div>
<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;        <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(pxs-&gt;<a class="code" href="a02997.html#a89bbd7240a39acee22034e3eeeb020f6">snext</a> == NULL);</div>
<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;        <span class="keywordflow">if</span> (pxs-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a> != NULL) {</div>
<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;<span class="comment">             * free any server-side GDI objects</span></div>
<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;            <span class="keywordflow">if</span> (pxs-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a>-&gt;<a class="code" href="a02045.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; (<a class="code" href="a00338.html#a7a5e9b7bba7b9146c0a43d2315e85396">XS_METAFILEPICT</a> | <a class="code" href="a00338.html#ad979b2a8ec4f0c8c9fe60ee464a32ea3">XS_ENHMETAFILE</a>)) {</div>
<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;                GreDeleteServerMetaFile(pxs-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a>-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>);</div>
<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;            }</div>
<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;            <span class="keywordflow">if</span> (pxs-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; <a class="code" href="a00338.html#af7863f00089bd052c7d22ff7a932d0a4">XS_PUBLICOBJ</a>) {</div>
<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;                <a class="code" href="a03188.html#a7b8bd248d8d95a45774942f67436d466">RemovePublicObject</a>(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pxs-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a> + 1))-&gt;wFmt,</div>
<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;                        pxs-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a>-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>);</div>
<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;                pxs-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp;= ~<a class="code" href="a00338.html#af7863f00089bd052c7d22ff7a932d0a4">XS_PUBLICOBJ</a>;</div>
<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;            }</div>
<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;            UserFreePool(pxs-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a>);</div>
<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;        }</div>
<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;        <a class="code" href="a00695.html#a4e6ee8871cf6323bdd048608605667b1">HMFreeObject</a>(pxs);</div>
<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;        <a class="code" href="a03188.html#a21fcc0ef5412430c80187d4b6adcdccc">ValidatePublicObjectList</a>();</div>
<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;    }</div>
<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00365_source.html#l01060">tagSHAREDINFO::aheList</a>, <a class="el" href="a00338_source.html#l00030">tagINTDDEINFO::flags</a>, <a class="el" href="a00899_source.html#l04686">tagXSTATE::flags</a>, <a class="el" href="a03257_source.html#l00065">giheLast</a>, <a class="el" href="a00020_source.html#l00040">gSharedInfo</a>, <a class="el" href="a00899_source.html#l04680">tagXSTATE::head</a>, <a class="el" href="a00338_source.html#l00034">tagINTDDEINFO::hIndirect</a>, <a class="el" href="a00695_source.html#l00575">HMFreeObject()</a>, <a class="el" href="a00695_source.html#l00757">HMMarkObjectDestroy()</a>, <a class="el" href="a00899_source.html#l04685">tagXSTATE::pIntDdeInfo</a>, <a class="el" href="a03188_source.html#l02197">RemovePublicObject()</a>, <a class="el" href="a00899_source.html#l04681">tagXSTATE::snext</a>, <a class="el" href="a00950_source.html#l00117">UserAssert</a>, <a class="el" href="a03188_source.html#l00088">ValidatePublicObjectList</a>, <a class="el" href="a00338_source.html#l00048">XS_ENHMETAFILE</a>, <a class="el" href="a00338_source.html#l00045">XS_METAFILEPICT</a> , 以及 <a class="el" href="a00338_source.html#l00056">XS_PUBLICOBJ</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00695_source.html#l01437">HMDestroyUnlockedObject()</a>, <a class="el" href="a03188_source.html#l01831">PopState()</a> , 以及 <a class="el" href="a03188_source.html#l00553">xxxDDETrackGetMessageHook()</a>.</p>

</div>
</div>
<a id="a48dcaddd811e14502e594b925f8425c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48dcaddd811e14502e594b925f8425c2">&#9670;&nbsp;</a></span>FreeListAdd()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL FreeListAdd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>FreeListAdd </p>
<p>Adds a CSR Client handle to the free list associated with pDdeConv. This allows us to make sure stuff is freed that isn't in a context we have access at the time we know it must be freed.</p>
<p>returns fSuccess</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01746">1746</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;{</div>
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;    <a class="code" href="a02985.html">PFREELIST</a> pfl;</div>
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; </div>
<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;    pfl = (<a class="code" href="a00899.html#a58c59789328731021e048007fc0c904c">PFREELIST</a>)UserAllocPool(<span class="keyword">sizeof</span>(<a class="code" href="a02985.html">FREELIST</a>), TAG_DDE1);</div>
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;    <span class="keywordflow">if</span> (!pfl) {</div>
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;    }</div>
<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;    <a class="code" href="a03188.html#a30127ac83fc0e41ffc19694a5d8baba1">TRACE_DDE2</a>(<span class="stringliteral">&quot;FreeListAdd: %x for thread %x.&quot;</span>, hClient,</div>
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;            pDdeConv-&gt;<a class="code" href="a02993.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.<a class="code" href="a02545.html#a774eeae0f007ae3ea612baf38cd38936">pti</a>-&gt;Thread-&gt;Cid.UniqueThread);</div>
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;    pfl-&gt;<a class="code" href="a02985.html#a0182b2e472b8af2291079784ca8926c9">h</a> = hClient;</div>
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;    pfl-&gt;<a class="code" href="a02985.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> = flags;</div>
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;    pfl-&gt;<a class="code" href="a02985.html#a353ca85d3247b98440fe7a40d2547731">next</a> = pDdeConv-&gt;<a class="code" href="a02993.html#ae9156c7bff04b6486833a17b295a3625">pfl</a>;</div>
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;    pDdeConv-&gt;<a class="code" href="a02993.html#ae9156c7bff04b6486833a17b295a3625">pfl</a> = pfl;</div>
<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;    <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899_source.html#l04653">tagFREELIST::flags</a>, <a class="el" href="a00899_source.html#l04652">tagFREELIST::h</a>, <a class="el" href="a00899_source.html#l04664">tagDDECONV::head</a>, <a class="el" href="a00899_source.html#l04651">tagFREELIST::next</a>, <a class="el" href="a00899_source.html#l04671">tagDDECONV::pfl</a>, <a class="el" href="a00365_source.html#l01140">_THROBJHEAD::pti</a> , 以及 <a class="el" href="a03188_source.html#l00030">TRACE_DDE2</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01775">FreeDDEHandle()</a>, <a class="el" href="a03188_source.html#l00870">xxxAdviseAck()</a>, <a class="el" href="a03188_source.html#l00998">xxxAdviseDataAck()</a>, <a class="el" href="a03188_source.html#l01280">xxxPokeAck()</a> , 以及 <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a>.</p>

</div>
</div>
<a id="a9173e7bc878e95973b1571155d7c472a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9173e7bc878e95973b1571155d7c472a">&#9670;&nbsp;</a></span>GiveObject()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL GiveObject </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a>&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hObj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">W32PID&#160;</td>
          <td class="paramname"><em>pid</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l02239">2239</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;{</div>
<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;    <span class="keywordflow">switch</span> (format) {</div>
<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;    <span class="keywordflow">case</span> CF_BITMAP:</div>
<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;    <span class="keywordflow">case</span> CF_DSPBITMAP:</div>
<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;        GreSetBitmapOwner(hObj, pid);</div>
<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;        <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160; </div>
<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;    <span class="keywordflow">case</span> CF_PALETTE:</div>
<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;        GreSetPaletteOwner(hObj, pid);</div>
<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;        <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160; </div>
<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;    <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;    }</div>
<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l00019">tagPUBOBJ::hObj</a> , 以及 <a class="el" href="a03188_source.html#l00024">tagPUBOBJ::pid</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l02160">AddPublicObject()</a>, <a class="el" href="a03188_source.html#l02197">RemovePublicObject()</a>, <a class="el" href="a03188_source.html#l00918">xxxAdviseData()</a>, <a class="el" href="a03188_source.html#l01694">xxxCopyAckIn()</a>, <a class="el" href="a03188_source.html#l01217">xxxPoke()</a> , 以及 <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a>.</p>

</div>
</div>
<a id="adbc63426f91636c2045e62267284e0d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbc63426f91636c2045e62267284e0d2">&#9670;&nbsp;</a></span>IsObjectPublic()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a03188.html#ae26fb158e9b14f6f622464adc944244a">PPUBOBJ</a> IsObjectPublic </td>
          <td>(</td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hObj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l02145">2145</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;{</div>
<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;    <a class="code" href="a02705.html">PPUBOBJ</a> ppo;</div>
<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160; </div>
<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;    <span class="keywordflow">for</span> (ppo = <a class="code" href="a03188.html#a7442caa2cd1d84c4de32bc6512a19824">gpPublicObjectList</a>; ppo != NULL; ppo = ppo-&gt;<a class="code" href="a02705.html#aea3bc6c333934fbac2cd9cdea301c49f">next</a>) {</div>
<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;        <span class="keywordflow">if</span> (ppo-&gt;<a class="code" href="a02705.html#a0f2e0011aa3551157b6949798bf93098">hObj</a> == hObj) {</div>
<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;            <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;        }</div>
<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;    }</div>
<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;    <span class="keywordflow">return</span>(ppo);</div>
<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l00026">gpPublicObjectList</a>, <a class="el" href="a03188_source.html#l00019">tagPUBOBJ::hObj</a> , 以及 <a class="el" href="a03188_source.html#l00018">tagPUBOBJ::next</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l02160">AddPublicObject()</a>, <a class="el" href="a03188_source.html#l00918">xxxAdviseData()</a>, <a class="el" href="a03188_source.html#l01217">xxxPoke()</a> , 以及 <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a>.</p>

</div>
</div>
<a id="ad9866dc880fb184dc8046ddbc41ce0c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9866dc880fb184dc8046ddbc41ce0c4">&#9670;&nbsp;</a></span>NewConversation()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL NewConversation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> *&#160;</td>
          <td class="paramname"><em>ppdcNewClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> *&#160;</td>
          <td class="paramname"><em>ppdcNewServer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndClient</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndServer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>NewConversation </p>
<p>Worker function used to create a saimese pair of DDECONV structures.</p>
<p>Returns fCreateOk</p>
<p>History: 11-5-92 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01624">1624</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;{</div>
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;    <a class="code" href="a02993.html">PDDECONV</a> pdcNewClient;</div>
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;    <a class="code" href="a02993.html">PDDECONV</a> pdcNewServer;</div>
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160; </div>
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;    pdcNewClient = <a class="code" href="a00695.html#a857d137de0592e36caec4b6e0f5021cb">HMAllocObject</a>(GETPTI(pwndClient), NULL,</div>
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;            TYPE_DDECONV, <span class="keyword">sizeof</span>(<a class="code" href="a02993.html">DDECONV</a>));</div>
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;    <span class="keywordflow">if</span> (pdcNewClient == NULL) {</div>
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;    }</div>
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; </div>
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;    pdcNewServer = <a class="code" href="a00695.html#a857d137de0592e36caec4b6e0f5021cb">HMAllocObject</a>(GETPTI(pwndServer), NULL,</div>
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;            TYPE_DDECONV, <span class="keyword">sizeof</span>(<a class="code" href="a02993.html">DDECONV</a>));</div>
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;    <span class="keywordflow">if</span> (pdcNewServer == NULL) {</div>
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;        <a class="code" href="a00695.html#a4e6ee8871cf6323bdd048608605667b1">HMFreeObject</a>(pdcNewClient);     <span class="comment">// we know it&#39;s not locked.</span></div>
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;    }</div>
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; </div>
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;    <a class="code" href="a03188.html#ab6a08dfb79864dd1fdd6e00cf938427b">AddConvProp</a>(pwndClient, pwndServer, 0, pdcNewClient, pdcNewServer);</div>
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;    <a class="code" href="a03188.html#ab6a08dfb79864dd1fdd6e00cf938427b">AddConvProp</a>(pwndServer, pwndClient, CXF_IS_SERVER, pdcNewServer,</div>
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;            pdcNewClient);</div>
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160; </div>
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;    <span class="keywordflow">if</span> (ppdcNewClient != NULL) {</div>
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;        *ppdcNewClient = pdcNewClient;</div>
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;    }</div>
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;    <span class="keywordflow">if</span> (ppdcNewServer != NULL) {</div>
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;        *ppdcNewServer = pdcNewServer;</div>
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;    }</div>
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;    <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l00227">AddConvProp()</a>, <a class="el" href="a00695_source.html#l00314">HMAllocObject()</a> , 以及 <a class="el" href="a00695_source.html#l00575">HMFreeObject()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00324">xxxDDETrackPostHook()</a> , 以及 <a class="el" href="a03188_source.html#l00157">xxxDDETrackSendHook()</a>.</p>

</div>
</div>
<a id="a16a8e4670ddce87ec7227d892f7cc103"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16a8e4670ddce87ec7227d892f7cc103">&#9670;&nbsp;</a></span>PopState()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID PopState </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>PopState </p>
<p>Frees spxsOut from pDdeConv and handles empty queue case.</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01831">1831</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;{</div>
<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxsNext, pxsFree;</div>
<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;    <a class="code" href="a01881.html">TL</a> tlpxs;</div>
<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; </div>
<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a> != NULL);</div>
<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;<span class="preprocessor">#if 0</span></div>
<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;    {</div>
<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;        <span class="keywordtype">int</span> i;</div>
<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;        <a class="code" href="a02553.html">HANDLEENTRY</a> *phe;</div>
<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160; </div>
<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;        <span class="keywordflow">for</span> (i = 0, phe = <a class="code" href="a00020.html#ac02f0141c423acd033ecdd2a757a3cc1">gSharedInfo</a>.<a class="code" href="a02521.html#aba571224616f70b9a072015bc9873676">aheList</a>;</div>
<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;            i &lt;= <a class="code" href="a03257.html#ab302ed5096d732e53f944c97b8321ba0">giheLast</a>;</div>
<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;                i++) {</div>
<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;            <span class="keywordflow">if</span> (phe[i].bType == TYPE_DDEXACT) {</div>
<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;                <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(((<a class="code" href="a02997.html">PXSTATE</a>)(phe[i].phead))-&gt;snext != pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>);</div>
<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;            }</div>
<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;        }</div>
<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;    }</div>
<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(!(pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; <a class="code" href="a00338.html#ae8a042e8f11aa1922d2f1c4e5598d587">XS_FREEPXS</a>));</div>
<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a31b3692a13413782dc2eb1c140c39024">spxsIn</a> != NULL);</div>
<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a31b3692a13413782dc2eb1c140c39024">spxsIn</a>-&gt;<a class="code" href="a02997.html#a89bbd7240a39acee22034e3eeeb020f6">snext</a> == NULL);</div>
<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160; </div>
<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;    ThreadLockAlways(pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>, &amp;tlpxs);              <span class="comment">// hold it fast</span></div>
<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;    pxsNext = pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a89bbd7240a39acee22034e3eeeb020f6">snext</a>;</div>
<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;    pxsFree = Lock(&amp;(pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>), pxsNext);      <span class="comment">// lock next into head</span></div>
<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;    <span class="keywordflow">if</span> (pxsNext == NULL) {</div>
<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;        <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a31b3692a13413782dc2eb1c140c39024">spxsIn</a> == pxsFree);</div>
<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;        Unlock(&amp;(pDdeConv-&gt;<a class="code" href="a02993.html#a31b3692a13413782dc2eb1c140c39024">spxsIn</a>));                <span class="comment">// queue is empty.</span></div>
<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;        Unlock(&amp;(pxsFree-&gt;<a class="code" href="a02997.html#a89bbd7240a39acee22034e3eeeb020f6">snext</a>));                  <span class="comment">// clear next ptr</span></div>
<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;    }</div>
<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;    pxsFree = ThreadUnlock(&amp;tlpxs);                     <span class="comment">// undo our lock</span></div>
<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;    <span class="keywordflow">if</span> (pxsFree != NULL) {</div>
<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;        <a class="code" href="a03188.html#af404d275bfc5fe7e3d047b3fa3366ccf">FreeDdeXact</a>(pxsFree);                           <span class="comment">// cleanup.</span></div>
<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;    }</div>
<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00365_source.html#l01060">tagSHAREDINFO::aheList</a>, <a class="el" href="a00899_source.html#l04686">tagXSTATE::flags</a>, <a class="el" href="a03188_source.html#l02100">FreeDdeXact()</a>, <a class="el" href="a03257_source.html#l00065">giheLast</a>, <a class="el" href="a00020_source.html#l00040">gSharedInfo</a>, <a class="el" href="a00899_source.html#l04681">tagXSTATE::snext</a>, <a class="el" href="a00899_source.html#l04670">tagDDECONV::spxsIn</a>, <a class="el" href="a00899_source.html#l04669">tagDDECONV::spxsOut</a>, <a class="el" href="a00950_source.html#l00117">UserAssert</a> , 以及 <a class="el" href="a00338_source.html#l00052">XS_FREEPXS</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01459">DupConvTerminate()</a>, <a class="el" href="a03188_source.html#l01872">FreeDdeConv()</a>, <a class="el" href="a03188_source.html#l00870">xxxAdviseAck()</a>, <a class="el" href="a03188_source.html#l00998">xxxAdviseDataAck()</a>, <a class="el" href="a03188_source.html#l01375">xxxExecuteAck()</a>, <a class="el" href="a03188_source.html#l01280">xxxPokeAck()</a>, <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a> , 以及 <a class="el" href="a03188_source.html#l01074">xxxUnadviseAck()</a>.</p>

</div>
</div>
<a id="a7b8bd248d8d95a45774942f67436d466"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b8bd248d8d95a45774942f67436d466">&#9670;&nbsp;</a></span>RemovePublicObject()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL RemovePublicObject </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a>&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hObj</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l02197">2197</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;{</div>
<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;    <a class="code" href="a02705.html">PPUBOBJ</a> ppo, ppoPrev;</div>
<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; </div>
<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;    <span class="keywordflow">switch</span> (format) {</div>
<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;    <span class="keywordflow">case</span> CF_BITMAP:</div>
<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;    <span class="keywordflow">case</span> CF_DSPBITMAP:</div>
<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;    <span class="keywordflow">case</span> CF_PALETTE:</div>
<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160; </div>
<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;    <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;    }</div>
<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160; </div>
<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;    <span class="keywordflow">for</span> (ppoPrev = NULL, ppo = <a class="code" href="a03188.html#a7442caa2cd1d84c4de32bc6512a19824">gpPublicObjectList</a>;</div>
<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;            ppo != NULL;</div>
<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;                ppoPrev = ppo, ppo = ppo-&gt;<a class="code" href="a02705.html#aea3bc6c333934fbac2cd9cdea301c49f">next</a>) {</div>
<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;        <span class="keywordflow">if</span> (ppo-&gt;hObj == hObj) {</div>
<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;            <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;        }</div>
<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;    }</div>
<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;    <span class="keywordflow">if</span> (ppo == NULL) {</div>
<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;        <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(FALSE);</div>
<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;    }</div>
<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;    ppo-&gt;count--;</div>
<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;    <span class="keywordflow">if</span> (ppo-&gt;count == 0) {</div>
<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;        <a class="code" href="a03188.html#a9173e7bc878e95973b1571155d7c472a">GiveObject</a>(format, hObj, ppo-&gt;pid);</div>
<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;        <span class="keywordflow">if</span> (ppoPrev != NULL) {</div>
<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;            ppoPrev-&gt;<a class="code" href="a02705.html#aea3bc6c333934fbac2cd9cdea301c49f">next</a> = ppo-&gt;<a class="code" href="a02705.html#aea3bc6c333934fbac2cd9cdea301c49f">next</a>;</div>
<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;            <a class="code" href="a03188.html#a7442caa2cd1d84c4de32bc6512a19824">gpPublicObjectList</a> = ppo-&gt;<a class="code" href="a02705.html#aea3bc6c333934fbac2cd9cdea301c49f">next</a>;</div>
<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;        }</div>
<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;        UserFreePool(ppo);</div>
<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;    }</div>
<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;    <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l02239">GiveObject()</a>, <a class="el" href="a03188_source.html#l00026">gpPublicObjectList</a>, <a class="el" href="a03188_source.html#l00019">tagPUBOBJ::hObj</a>, <a class="el" href="a03188_source.html#l00018">tagPUBOBJ::next</a> , 以及 <a class="el" href="a00950_source.html#l00117">UserAssert</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l02100">FreeDdeXact()</a> , 以及 <a class="el" href="a03188_source.html#l01694">xxxCopyAckIn()</a>.</p>

</div>
</div>
<a id="ab5889d7ece1920eaa03963b64a7fe918"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5889d7ece1920eaa03963b64a7fe918">&#9670;&nbsp;</a></span>Request()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> Request </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>REQUEST TRANSACTION PROCESSING * \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01098">1098</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;{</div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;Request&quot;</span>);</div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">AnticipatePost</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>, <a class="code" href="a03188.html#ac75933e505a4fccbfea17fc42cb1cb4e">xxxRequestAck</a>, NULL, NULL, NULL, 0)) {</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>);</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    }</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l01492">AnticipatePost()</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a> , 以及 <a class="el" href="a03188_source.html#l00047">xxxRequestAck</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00792">xxxUnexpectedClientPost()</a>.</p>

</div>
</div>
<a id="a57267a60553520a876e79828b0eefd60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57267a60553520a876e79828b0eefd60">&#9670;&nbsp;</a></span>SpontaneousTerminate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> SpontaneousTerminate </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TERMINATE TRANSACTION PROCESSING * \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01423">1423</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;{</div>
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;SpontaneousTerminate&quot;</span>);</div>
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;    <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; CXF_TERMINATE_POSTED) {</div>
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a>);</div>
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;        pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> |= CXF_TERMINATE_POSTED;</div>
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;        *pmessage |= MSGFLAG_DDE_MID_THUNK;</div>
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>);</div>
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;    }</div>
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00338_source.html#l00062">FAKE_POST</a>, <a class="el" href="a00899_source.html#l04672">tagDDECONV::flags</a> , 以及 <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00792">xxxUnexpectedClientPost()</a> , 以及 <a class="el" href="a03188_source.html#l00751">xxxUnexpectedServerPost()</a>.</p>

</div>
</div>
<a id="a77c765954125fe64a79d3da981f5f1c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77c765954125fe64a79d3da981f5f1c0">&#9670;&nbsp;</a></span>Unadvise()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> Unadvise </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>UNADVISE TRANSACTION PROCESSING * \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01061">1061</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;{</div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;Unadvise&quot;</span>);</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">AnticipatePost</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>, <a class="code" href="a03188.html#a95b5dde532abadf46cbc559013681bf1">xxxUnadviseAck</a>, NULL, NULL, NULL, 0)) {</div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>);</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;    }</div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l01492">AnticipatePost()</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a> , 以及 <a class="el" href="a03188_source.html#l00045">xxxUnadviseAck</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00792">xxxUnexpectedClientPost()</a>.</p>

</div>
</div>
<a id="a4c49e6f19d941a1747493eaf7131eaeb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c49e6f19d941a1747493eaf7131eaeb">&#9670;&nbsp;</a></span>UnlinkConv()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a> UnlinkConv </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>UnlinkConv </p>
<p>Unlinks a DDECONV structure from the property list it is associated with.</p>
<p>returns pDdeConv-&gt;snext</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00268">268</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;{</div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <a class="code" href="a02993.html">PDDECONV</a> pdcPrev, pdcT, pDdeConvNext;</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160; </div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="comment">     * Already unlinked</span></div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a> == NULL) {</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keywordflow">return</span>(NULL);</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    }</div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;UnlinkConv(%x)&quot;</span>, pDdeConv);</div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160; </div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    pdcT = (<a class="code" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>)<a class="code" href="a00365.html#a600525b4b6d1cfd74c99b5484051ce5c">_GetProp</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>,</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;            PROP_DDETRACK, PROPF_INTERNAL);</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    <span class="keywordflow">if</span> (pdcT == NULL) {</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <span class="keywordflow">return</span>(NULL);             <span class="comment">// already unlinked</span></div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;    }</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160; </div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    pdcPrev = NULL;</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="keywordflow">while</span> (pdcT != pDdeConv) {</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        pdcPrev = pdcT;</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        pdcT = pdcT-&gt;<a class="code" href="a02993.html#a25b948ee008e305bdebef4c13d63a9dd">snext</a>;</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="keywordflow">if</span> (pdcT == NULL) {</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;            <span class="keywordflow">return</span>(NULL);        <span class="comment">// already unlinked</span></div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        }</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    }</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    <span class="keywordflow">if</span> (pdcPrev == NULL) {</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a25b948ee008e305bdebef4c13d63a9dd">snext</a> == NULL) {</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;            <span class="comment">// last one out removes the property</span></div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;            <a class="code" href="a00899.html#ac307716e78f28389086bd8b889d4331c">InternalRemoveProp</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>, PROP_DDETRACK, PROPF_INTERNAL);</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;            <span class="comment">// head conv unlinked - update prop</span></div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;            <a class="code" href="a00899.html#a6ffe8ade91d65cba93526ed1596e417f">InternalSetProp</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>, PROP_DDETRACK, pDdeConv-&gt;<a class="code" href="a02993.html#a25b948ee008e305bdebef4c13d63a9dd">snext</a>,</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                    PROPF_INTERNAL);</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        }</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        Lock(&amp;(pdcPrev-&gt;<a class="code" href="a02993.html#a25b948ee008e305bdebef4c13d63a9dd">snext</a>), pDdeConv-&gt;<a class="code" href="a02993.html#a25b948ee008e305bdebef4c13d63a9dd">snext</a>);</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    }</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    pDdeConvNext = Unlock(&amp;(pDdeConv-&gt;<a class="code" href="a02993.html#a25b948ee008e305bdebef4c13d63a9dd">snext</a>));</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    HMUnlockObject(pDdeConv);      <span class="comment">// unlock for property detachment</span></div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    <span class="keywordflow">return</span>(pDdeConvNext);</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03740_source.html#l00069">_GetProp()</a>, <a class="el" href="a03731_source.html#l00098">InternalRemoveProp()</a>, <a class="el" href="a03731_source.html#l00039">InternalSetProp()</a>, <a class="el" href="a00899_source.html#l04665">tagDDECONV::snext</a>, <a class="el" href="a00899_source.html#l04667">tagDDECONV::spwnd</a> , 以及 <a class="el" href="a03188_source.html#l00029">TRACE_DDE1</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01872">FreeDdeConv()</a> , 以及 <a class="el" href="a03188_source.html#l00682">xxxDDETrackWindowDying()</a>.</p>

</div>
</div>
<a id="a0ebdfd2dc7703e785b23dbd19493f3be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ebdfd2dc7703e785b23dbd19493f3be">&#9670;&nbsp;</a></span>xxxAdvise()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxAdvise </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>ADVISE TRANSACTION PROCESSING * \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00838">838</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;{</div>
<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pIntDdeInfo;</div>
<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;    HANDLE hDirect;</div>
<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags;</div>
<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; </div>
<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160; </div>
<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxAdvise&quot;</span>);</div>
<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;    flags = <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a> | <a class="code" href="a00338.html#a0c63f2942d3dd52ed9d738ef9a2df7f9">XS_LOHANDLE</a>;</div>
<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;    pIntDdeInfo = <a class="code" href="a03188.html#a3d51f7beeb110632d20c93fa1f730741">xxxCopyDdeIn</a>((HANDLE)*plParam, &amp;flags, &amp;hDirect, pDdeConv);</div>
<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo != NULL) {</div>
<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;        *pmessage |= MSGFLAG_DDE_MID_THUNK;</div>
<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;        *plParam = (LONG)<a class="code" href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">AnticipatePost</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>, <a class="code" href="a03188.html#ae1d3f4b172dac30ae87e7e0531596788">xxxAdviseAck</a>,</div>
<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;             hDirect, NULL, pIntDdeInfo, flags);</div>
<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;    }</div>
<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;    <span class="keywordflow">return</span>((*plParam &amp;&amp; pIntDdeInfo != NULL) ? <a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a> : <a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l01492">AnticipatePost()</a>, <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a00338_source.html#l00050">XS_LOHANDLE</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a03188_source.html#l00041">xxxAdviseAck</a> , 以及 <a class="el" href="a03188_source.html#l01931">xxxCopyDdeIn()</a>.</p>

</div>
</div>
<a id="a9b313cf5692793cb95ccf5a00cd7baf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b313cf5692793cb95ccf5a00cd7baf1">&#9670;&nbsp;</a></span>xxxAdviseAck()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxAdviseAck </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00870">870</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;{</div>
<div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxsFree;</div>
<div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pIntDdeInfo;</div>
<div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160; </div>
<div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160; </div>
<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    <span class="keywordflow">if</span> (*pmessage != WM_DDE_ACK) {</div>
<div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#acb683c4e669b34c6ce535d4d8c77aced">xxxUnexpectedServerPost</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;    }</div>
<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160; </div>
<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxAdviseAck&quot;</span>);</div>
<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160; </div>
<div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;    pIntDdeInfo = <a class="code" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn</a>(pmessage, plParam, pDdeConv);</div>
<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo == NULL) {</div>
<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;    }</div>
<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160; </div>
<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;    pxsFree = pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>;</div>
<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo-&gt;<a class="code" href="a02045.html#aee65ff48ba47da1c554b459e114b7c81">DdePack</a>.<a class="code" href="a02037.html#aebb1baff167483debcd4de699303c47e">uiLo</a> &amp; DDE_FACK) {</div>
<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160; </div>
<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;<span class="comment">         * positive ack implies server accepted the hOptions data - free from</span></div>
<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;<span class="comment">         * client at postmessage time.</span></div>
<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;        <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxAdviseAck: +ACK delayed freeing data from client&quot;</span>);</div>
<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;        <a class="code" href="a03188.html#a48dcaddd811e14502e594b925f8425c2">FreeListAdd</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>, pxsFree-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a>, pxsFree-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; ~<a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        <span class="comment">// Shouldn&#39;t this be freed directly?</span></div>
<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;        <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxAdviseAck: -ACK delayed freeing data from server&quot;</span>);</div>
<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;        <a class="code" href="a03188.html#a48dcaddd811e14502e594b925f8425c2">FreeListAdd</a>(pDdeConv, pxsFree-&gt;<a class="code" href="a02997.html#a36fe11d5a7a27923af9b2899a24e5464">hServer</a>, pxsFree-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; ~<a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;    }</div>
<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160; </div>
<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;    <a class="code" href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a>(pDdeConv);</div>
<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;    <span class="keywordflow">return</span>(<a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>);</div>
<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00338_source.html#l00029">tagINTDDEINFO::DdePack</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a00899_source.html#l04686">tagXSTATE::flags</a>, <a class="el" href="a03188_source.html#l01746">FreeListAdd()</a>, <a class="el" href="a00899_source.html#l04683">tagXSTATE::hClient</a>, <a class="el" href="a00899_source.html#l04684">tagXSTATE::hServer</a>, <a class="el" href="a03188_source.html#l01831">PopState()</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04669">tagDDECONV::spxsOut</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a00338_source.html#l00013">tagDDEPACK::uiLo</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn()</a> , 以及 <a class="el" href="a03188_source.html#l00038">xxxUnexpectedServerPost</a>.</p>

</div>
</div>
<a id="a8ddf97eb4de9fdb6bf813a19985a5169"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ddf97eb4de9fdb6bf813a19985a5169">&#9670;&nbsp;</a></span>xxxAdviseData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxAdviseData </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>ADVISE DATA TRANSACTION PROCESSING * \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00918">918</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;{</div>
<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags;</div>
<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pIntDdeInfo;</div>
<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;    HANDLE hDirect;</div>
<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxs;</div>
<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160; </div>
<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160; </div>
<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxAdviseData&quot;</span>);</div>
<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160; </div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    flags = <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a> | <a class="code" href="a00338.html#a0c63f2942d3dd52ed9d738ef9a2df7f9">XS_LOHANDLE</a> | <a class="code" href="a00338.html#ad14ea0aadf6e104762e56ef12b056e49">XS_DATA</a>;</div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160; </div>
<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    pIntDdeInfo = <a class="code" href="a03188.html#a3d51f7beeb110632d20c93fa1f730741">xxxCopyDdeIn</a>((HANDLE)*plParam, &amp;flags, &amp;hDirect, pDdeConv);</div>
<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo != NULL) {</div>
<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;        <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;xxxAdviseData: wStatus = %x&quot;</span>,</div>
<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;                ((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wStatus);</div>
<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        <span class="keywordflow">if</span> (!(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wStatus &amp; (DDE_FACK | DDE_FRELEASE))) {</div>
<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;            <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;DDE protocol violation - no RELEASE or ACK bit set - setting RELEASE.&quot;</span>);</div>
<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;            ((<a class="code" href="a00338.html#a0e02bb78a0e29d73b074fca51b332c2b">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wStatus |= DDE_FRELEASE;</div>
<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;        }</div>
<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;        <span class="keywordflow">if</span> (((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wStatus &amp; DDE_FRELEASE) {</div>
<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;<span class="comment">             * giving it away</span></div>
<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="a03188.html#adbc63426f91636c2045e62267284e0d2">IsObjectPublic</a>(pIntDdeInfo-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>) != NULL) {</div>
<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;                <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;DDE Protocol violation - giving away a public GDI object.&quot;</span>);</div>
<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;                UserFreePool(pIntDdeInfo);</div>
<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;                <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;            }</div>
<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="a03188.html#a9173e7bc878e95973b1571155d7c472a">GiveObject</a>(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wFmt,</div>
<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;                    pIntDdeInfo-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>,</div>
<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;                    (W32PID)(GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>)-&gt;ppi-&gt;W32Pid))) {</div>
<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;                flags |= <a class="code" href="a00338.html#a5a18de9efdf6169f6aec74260c139d63">XS_GIVEBACKONNACK</a>;</div>
<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;            }</div>
<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;            flags |= <a class="code" href="a00338.html#aeffc0583e2a518c6119cc20bd4f7789d">XS_FRELEASE</a>;</div>
<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;<span class="comment">             * on loan</span></div>
<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="a03188.html#a9e31e0ef775eeb44f4a0300ebf631a8e">AddPublicObject</a>(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wFmt,</div>
<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;                        pIntDdeInfo-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>,</div>
<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;                        (W32PID)(GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>)-&gt;ppi-&gt;W32Pid))) {</div>
<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;                flags |= <a class="code" href="a00338.html#af7863f00089bd052c7d22ff7a932d0a4">XS_PUBLICOBJ</a>;</div>
<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;            }</div>
<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;        }</div>
<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160; </div>
<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;        *pmessage |= MSGFLAG_DDE_MID_THUNK;</div>
<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;        <span class="keywordflow">if</span> (((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wStatus &amp; DDE_FACK) {</div>
<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;            *plParam = (LONG)<a class="code" href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">AnticipatePost</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>,</div>
<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;                <a class="code" href="a03188.html#a67b24a92e329ae85db344562e7a551db">xxxAdviseDataAck</a>, NULL, hDirect, pIntDdeInfo, flags);</div>
<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;            <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxAdviseData: dumping non Ackable data...&quot;</span>);</div>
<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;            <a class="code" href="a03188.html#ae043671c73200068a05ef48e473fcf4e">FreeDDEHandle</a>(pDdeConv, hDirect, flags &amp; ~<a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;            pxs = <a class="code" href="a03188.html#a42b25694b2e9031203dae987afbccfe2">Createpxs</a>(NULL, NULL, NULL, pIntDdeInfo, flags | <a class="code" href="a00338.html#ae8a042e8f11aa1922d2f1c4e5598d587">XS_FREEPXS</a>);</div>
<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;            <span class="keywordflow">if</span> (pxs != NULL) {</div>
<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;                pxs-&gt;<a class="code" href="a02997.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.<a class="code" href="a02545.html#a774eeae0f007ae3ea612baf38cd38936">pti</a> = GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>);</div>
<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;            }</div>
<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;            *plParam = (LONG)PtoH(pxs);</div>
<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;        }</div>
<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;    }</div>
<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    <span class="keywordflow">return</span>((*plParam &amp;&amp; pIntDdeInfo != NULL) ? <a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a> : <a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l02160">AddPublicObject()</a>, <a class="el" href="a03188_source.html#l01492">AnticipatePost()</a>, <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a03188_source.html#l01547">Createpxs()</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a03188_source.html#l01775">FreeDDEHandle()</a>, <a class="el" href="a03188_source.html#l02239">GiveObject()</a>, <a class="el" href="a00899_source.html#l04680">tagXSTATE::head</a>, <a class="el" href="a00338_source.html#l00034">tagINTDDEINFO::hIndirect</a>, <a class="el" href="a03188_source.html#l02145">IsObjectPublic()</a>, <a class="el" href="a00365_source.html#l01140">_THROBJHEAD::pti</a>, <a class="el" href="a00371_source.html#l00028">RIP_ERROR</a>, <a class="el" href="a00371_source.html#l00131">RIPMSG0</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04667">tagDDECONV::spwnd</a>, <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a03188_source.html#l00029">TRACE_DDE1</a>, <a class="el" href="a00338_source.html#l00044">XS_DATA</a>, <a class="el" href="a00338_source.html#l00052">XS_FREEPXS</a>, <a class="el" href="a00338_source.html#l00053">XS_FRELEASE</a>, <a class="el" href="a00338_source.html#l00057">XS_GIVEBACKONNACK</a>, <a class="el" href="a00338_source.html#l00050">XS_LOHANDLE</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a00338_source.html#l00056">XS_PUBLICOBJ</a>, <a class="el" href="a03188_source.html#l00043">xxxAdviseDataAck</a> , 以及 <a class="el" href="a03188_source.html#l01931">xxxCopyDdeIn()</a>.</p>

</div>
</div>
<a id="af6c1ae24bc5c183e9393a9f7466a9892"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6c1ae24bc5c183e9393a9f7466a9892">&#9670;&nbsp;</a></span>xxxAdviseDataAck()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxAdviseDataAck </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00998">998</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;{</div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxsFree;</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pIntDdeInfo;</div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; </div>
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; </div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="comment">     * This is also used for request data ack processing.</span></div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    <span class="keywordflow">if</span> (*pmessage != WM_DDE_ACK) {</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#a6006542cc1c1b798a4033b658f8df083">xxxUnexpectedClientPost</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    }</div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; </div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxAdviseDataAck&quot;</span>);</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; </div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;    pIntDdeInfo = <a class="code" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn</a>(pmessage, plParam, pDdeConv);</div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo == NULL) {</div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    }</div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; </div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;    pxsFree = pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>;</div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    <a class="code" href="a03188.html#a84e8c195994d914d135c5afd6adb1c84">TRACE_DDE3</a>(<span class="stringliteral">&quot;xxxAdviseDataAck:pxs.hClient(%x), hServer(%x), wStatus(%x)&quot;</span>,</div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;            pxsFree-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a>, pxsFree-&gt;<a class="code" href="a02997.html#a36fe11d5a7a27923af9b2899a24e5464">hServer</a>, pIntDdeInfo-&gt;<a class="code" href="a02045.html#aee65ff48ba47da1c554b459e114b7c81">DdePack</a>.<a class="code" href="a02037.html#aebb1baff167483debcd4de699303c47e">uiLo</a>);</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo-&gt;<a class="code" href="a02045.html#aee65ff48ba47da1c554b459e114b7c81">DdePack</a>.<a class="code" href="a02037.html#aebb1baff167483debcd4de699303c47e">uiLo</a> &amp; DDE_FACK) {</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; </div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="comment">         * positive ack implies client accepted the data - free from</span></div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="comment">         * server at postmessage time iff FRELEASE was set in data msg.</span></div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;        <span class="keywordflow">if</span> (pxsFree-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; <a class="code" href="a00338.html#aeffc0583e2a518c6119cc20bd4f7789d">XS_FRELEASE</a>) {</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;            <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxAdviseDataAck: +ACK delayed server data free&quot;</span>);</div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;            <a class="code" href="a03188.html#a48dcaddd811e14502e594b925f8425c2">FreeListAdd</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>, pxsFree-&gt;<a class="code" href="a02997.html#a36fe11d5a7a27923af9b2899a24e5464">hServer</a>,</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;                    pxsFree-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; ~<a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;<span class="comment">             * Ack w/out fRelease bit means client is done with data.</span></div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;            <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;xxxAdviseDataAck: Freeing %x. (+ACK)&quot;</span>,</div>
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;                    pxsFree-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a>);</div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;            <a class="code" href="a03188.html#ae043671c73200068a05ef48e473fcf4e">FreeDDEHandle</a>(pDdeConv, pxsFree-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a>, pxsFree-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; ~<a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;        }</div>
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; </div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;        <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;xxxAdviseDataAck: Freeing %x. (-ACK)&quot;</span>,</div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;                pxsFree-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a>);</div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;        <a class="code" href="a03188.html#ae043671c73200068a05ef48e473fcf4e">FreeDDEHandle</a>(pDdeConv, pxsFree-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a>, pxsFree-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; ~<a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;    }</div>
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;    <a class="code" href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a>(pDdeConv);</div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;    <span class="keywordflow">return</span>(<a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>);</div>
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00338_source.html#l00029">tagINTDDEINFO::DdePack</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a00899_source.html#l04686">tagXSTATE::flags</a>, <a class="el" href="a03188_source.html#l01775">FreeDDEHandle()</a>, <a class="el" href="a03188_source.html#l01746">FreeListAdd()</a>, <a class="el" href="a00899_source.html#l04683">tagXSTATE::hClient</a>, <a class="el" href="a00899_source.html#l04684">tagXSTATE::hServer</a>, <a class="el" href="a03188_source.html#l01831">PopState()</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04669">tagDDECONV::spxsOut</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a03188_source.html#l00029">TRACE_DDE1</a>, <a class="el" href="a03188_source.html#l00031">TRACE_DDE3</a>, <a class="el" href="a00338_source.html#l00013">tagDDEPACK::uiLo</a>, <a class="el" href="a00338_source.html#l00053">XS_FRELEASE</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn()</a> , 以及 <a class="el" href="a03188_source.html#l00039">xxxUnexpectedClientPost</a>.</p>

</div>
</div>
<a id="a7ae968bf9fe9f887f96d61fca74d654d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ae968bf9fe9f887f96d61fca74d654d">&#9670;&nbsp;</a></span>xxxClientCopyDDEIn1()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a> xxxClientCopyDDEIn1 </td>
          <td>(</td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hSrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01931">xxxCopyDdeIn()</a>.</p>

</div>
</div>
<a id="a9c2c31cc2fbb7833978ec0fee18ebb4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c2c31cc2fbb7833978ec0fee18ebb4e">&#9670;&nbsp;</a></span>xxxClientCopyDDEOut1()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">HANDLE xxxClientCopyDDEOut1 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a>&#160;</td>
          <td class="paramname"><em>pIntDdeInfo</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01975">xxxCopyDDEOut()</a>.</p>

</div>
</div>
<a id="a5273891192ce260cddebc5a062ade67d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5273891192ce260cddebc5a062ade67d">&#9670;&nbsp;</a></span>xxxClientCopyDDEOut2()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxClientCopyDDEOut2 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a>&#160;</td>
          <td class="paramname"><em>pIntDdeInfo</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a9020b04f812be3ab44307bf89a985087"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9020b04f812be3ab44307bf89a985087">&#9670;&nbsp;</a></span>xxxCopyAckIn() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a> xxxCopyAckIn </td>
          <td>(</td>
          <td class="paramtype">LPDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>xxxCopyAckIn </p>
<p>A common occurance helper function</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01694">1694</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;{</div>
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pIntDdeInfo;</div>
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags;</div>
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxs;</div>
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; </div>
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; </div>
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;    flags = <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a> | <a class="code" href="a00338.html#a8fed429a04625ed6d2f54db690b51264">XS_FREESRC</a>;</div>
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;    pIntDdeInfo = <a class="code" href="a03188.html#a3d51f7beeb110632d20c93fa1f730741">xxxCopyDdeIn</a>((HANDLE)*plParam, &amp;flags, NULL, pDdeConv);</div>
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo != NULL) {</div>
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;        <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; <a class="code" href="a00338.html#a5a18de9efdf6169f6aec74260c139d63">XS_GIVEBACKONNACK</a> &amp;&amp;</div>
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;                !(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wStatus &amp; DDE_FACK)) {</div>
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;            <a class="code" href="a03188.html#a9173e7bc878e95973b1571155d7c472a">GiveObject</a>(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a> + 1))-&gt;wFmt,</div>
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;                    pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a>-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>,</div>
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;                    (W32PID)GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>)-&gt;ppi-&gt;W32Pid);</div>
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;        }</div>
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;        <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; <a class="code" href="a00338.html#af7863f00089bd052c7d22ff7a932d0a4">XS_PUBLICOBJ</a>) {</div>
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160;            <a class="code" href="a03188.html#a7b8bd248d8d95a45774942f67436d466">RemovePublicObject</a>(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a> + 1))-&gt;wFmt,</div>
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;                    pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a>-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>);</div>
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;            pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp;= ~<a class="code" href="a00338.html#af7863f00089bd052c7d22ff7a932d0a4">XS_PUBLICOBJ</a>;</div>
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;        }</div>
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;        pxs = <a class="code" href="a03188.html#a42b25694b2e9031203dae987afbccfe2">Createpxs</a>(NULL, NULL, NULL, pIntDdeInfo, flags | <a class="code" href="a00338.html#ae8a042e8f11aa1922d2f1c4e5598d587">XS_FREEPXS</a>);</div>
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;        <span class="keywordflow">if</span> (pxs != NULL) {</div>
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;            pxs-&gt;<a class="code" href="a02997.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.<a class="code" href="a02545.html#a774eeae0f007ae3ea612baf38cd38936">pti</a> = GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>);</div>
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;        }</div>
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;        *plParam = (LONG)PtoH(pxs);</div>
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;        <span class="keywordflow">if</span> (*plParam == 0) {</div>
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;            <span class="keywordflow">return</span>(NULL);</div>
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;        }</div>
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;        *pmessage |= MSGFLAG_DDE_MID_THUNK;</div>
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;    }</div>
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;    <span class="keywordflow">return</span>(pIntDdeInfo);</div>
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a03188_source.html#l01547">Createpxs()</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00899_source.html#l04686">tagXSTATE::flags</a>, <a class="el" href="a03188_source.html#l02239">GiveObject()</a>, <a class="el" href="a00899_source.html#l04680">tagXSTATE::head</a>, <a class="el" href="a00338_source.html#l00034">tagINTDDEINFO::hIndirect</a>, <a class="el" href="a00899_source.html#l04685">tagXSTATE::pIntDdeInfo</a>, <a class="el" href="a00365_source.html#l01140">_THROBJHEAD::pti</a>, <a class="el" href="a03188_source.html#l02197">RemovePublicObject()</a>, <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>, <a class="el" href="a00899_source.html#l04669">tagDDECONV::spxsOut</a>, <a class="el" href="a00338_source.html#l00052">XS_FREEPXS</a>, <a class="el" href="a00338_source.html#l00055">XS_FREESRC</a>, <a class="el" href="a00338_source.html#l00057">XS_GIVEBACKONNACK</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a00338_source.html#l00056">XS_PUBLICOBJ</a> , 以及 <a class="el" href="a03188_source.html#l01931">xxxCopyDdeIn()</a>.</p>

</div>
</div>
<a id="a42d65ac379b1f0187421a7bd1f19d4ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42d65ac379b1f0187421a7bd1f19d4ac">&#9670;&nbsp;</a></span>xxxCopyAckIn() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a> xxxCopyAckIn </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00870">xxxAdviseAck()</a>, <a class="el" href="a03188_source.html#l00998">xxxAdviseDataAck()</a>, <a class="el" href="a03188_source.html#l01280">xxxPokeAck()</a>, <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a> , 以及 <a class="el" href="a03188_source.html#l01074">xxxUnadviseAck()</a>.</p>

</div>
</div>
<a id="a3d51f7beeb110632d20c93fa1f730741"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d51f7beeb110632d20c93fa1f730741">&#9670;&nbsp;</a></span>xxxCopyDdeIn()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a> xxxCopyDdeIn </td>
          <td>(</td>
          <td class="paramtype">HANDLE&#160;</td>
          <td class="paramname"><em>hSrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pflags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PHANDLE&#160;</td>
          <td class="paramname"><em>phDirect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01931">1931</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;{</div>
<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pi;</div>
<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; </div>
<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160; </div>
<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;    pi = <a class="code" href="a03188.html#a7ae968bf9fe9f887f96d61fca74d654d">xxxClientCopyDDEIn1</a>(hSrc, *pflags);</div>
<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;    <a class="code" href="a03188.html#a30127ac83fc0e41ffc19694a5d8baba1">TRACE_DDE2</a>(*pflags &amp; <a class="code" href="a00338.html#a8fed429a04625ed6d2f54db690b51264">XS_FREESRC</a> ?</div>
<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;            <span class="stringliteral">&quot;Copying in and freeing %x(%x)&quot;</span> :</div>
<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;            <span class="stringliteral">&quot;Copying in %x(%x)&quot;</span>,</div>
<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;            hSrc, pi ? pi-&gt;<a class="code" href="a02045.html#a4359f4e167c2cc6ed3d3df8adce22348">hDirect</a> : 0);</div>
<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; </div>
<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;    <span class="keywordflow">if</span> (pi != NULL) {</div>
<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;        *pflags = pi-&gt;<a class="code" href="a02045.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a>;</div>
<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;        <a class="code" href="a03188.html#a84e8c195994d914d135c5afd6adb1c84">TRACE_DDE3</a>(<span class="stringliteral">&quot;xxxCopyDdeIn: uiLo=%x, uiHi=%x, hDirect=%x&quot;</span>,</div>
<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;                pi-&gt;<a class="code" href="a02045.html#aee65ff48ba47da1c554b459e114b7c81">DdePack</a>.<a class="code" href="a02037.html#aebb1baff167483debcd4de699303c47e">uiLo</a>, pi-&gt;<a class="code" href="a02045.html#aee65ff48ba47da1c554b459e114b7c81">DdePack</a>.<a class="code" href="a02037.html#aef0d0522c1ffb9d2eb8917cb6991a46a">uiHi</a>, pi-&gt;<a class="code" href="a02045.html#a4359f4e167c2cc6ed3d3df8adce22348">hDirect</a>);</div>
<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;        <span class="keywordflow">if</span> (phDirect != NULL) {</div>
<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;            *phDirect = pi-&gt;<a class="code" href="a02045.html#a4359f4e167c2cc6ed3d3df8adce22348">hDirect</a>;</div>
<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;        }</div>
<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;    }</div>
<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;      <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a>, <span class="stringliteral">&quot;Unable to alloc DDE INTDDEINFO&quot;</span>);</div>
<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;    }</div>
<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; </div>
<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;    <span class="keywordflow">return</span>(pi);</div>
<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00338_source.html#l00029">tagINTDDEINFO::DdePack</a>, <a class="el" href="a00338_source.html#l00030">tagINTDDEINFO::flags</a>, <a class="el" href="a00338_source.html#l00031">tagINTDDEINFO::hDirect</a>, <a class="el" href="a00371_source.html#l00029">RIP_WARNING</a>, <a class="el" href="a00371_source.html#l00131">RIPMSG0</a>, <a class="el" href="a03188_source.html#l00030">TRACE_DDE2</a>, <a class="el" href="a03188_source.html#l00031">TRACE_DDE3</a>, <a class="el" href="a00338_source.html#l00014">tagDDEPACK::uiHi</a>, <a class="el" href="a00338_source.html#l00013">tagDDEPACK::uiLo</a>, <a class="el" href="a00338_source.html#l00055">XS_FREESRC</a> , 以及 <a class="el" href="a03188.html#a7ae968bf9fe9f887f96d61fca74d654d">xxxClientCopyDDEIn1()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00838">xxxAdvise()</a>, <a class="el" href="a03188_source.html#l00918">xxxAdviseData()</a>, <a class="el" href="a03188_source.html#l01694">xxxCopyAckIn()</a>, <a class="el" href="a03188_source.html#l01326">xxxExecute()</a>, <a class="el" href="a03188_source.html#l01375">xxxExecuteAck()</a>, <a class="el" href="a03188_source.html#l01217">xxxPoke()</a> , 以及 <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a>.</p>

</div>
</div>
<a id="a012998a925dcedadcacca4505c103d03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a012998a925dcedadcacca4505c103d03">&#9670;&nbsp;</a></span>xxxCopyDDEOut()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">HANDLE xxxCopyDDEOut </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00338.html#a382814a2ddaf81e9a052457e71c818e2">PINTDDEINFO</a>&#160;</td>
          <td class="paramname"><em>pIntDdeInfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PHANDLE&#160;</td>
          <td class="paramname"><em>phDirect</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01975">1975</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;{</div>
<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;    HANDLE hDst;</div>
<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; </div>
<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;    <a class="code" href="a03188.html#a84e8c195994d914d135c5afd6adb1c84">TRACE_DDE3</a>(<span class="stringliteral">&quot;xxxCopyDDEOut: cbDirect=%x, cbIndirect=%x, flags=%x&quot;</span>,</div>
<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;            pi-&gt;cbDirect, pi-&gt;cbIndirect, pi-&gt;flags);</div>
<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;    hDst = <a class="code" href="a03188.html#a9c2c31cc2fbb7833978ec0fee18ebb4e">xxxClientCopyDDEOut1</a>(pi);</div>
<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;    <a class="code" href="a03188.html#a84e8c195994d914d135c5afd6adb1c84">TRACE_DDE3</a>(<span class="stringliteral">&quot;xxxCopyDDEOut: uiLo=%x, uiHi=%x, hResult=%x&quot;</span>,</div>
<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;            pi-&gt;DdePack.uiLo, pi-&gt;DdePack.uiHi, hDst);</div>
<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;    <span class="keywordflow">if</span> (hDst != NULL) {</div>
<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;        <span class="keywordflow">if</span> (phDirect != NULL) {</div>
<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;            <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;xxxCopyDDEOut: *phDirect=%x&quot;</span>, pi-&gt;hDirect);</div>
<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;            *phDirect = pi-&gt;hDirect;</div>
<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;        }</div>
<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;    }</div>
<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;    <span class="keywordflow">return</span>(hDst);</div>
<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00338_source.html#l00033">tagINTDDEINFO::cbDirect</a>, <a class="el" href="a00338_source.html#l00036">tagINTDDEINFO::cbIndirect</a>, <a class="el" href="a00338_source.html#l00029">tagINTDDEINFO::DdePack</a>, <a class="el" href="a00338_source.html#l00030">tagINTDDEINFO::flags</a>, <a class="el" href="a00338_source.html#l00031">tagINTDDEINFO::hDirect</a>, <a class="el" href="a03188_source.html#l00029">TRACE_DDE1</a>, <a class="el" href="a03188_source.html#l00031">TRACE_DDE3</a>, <a class="el" href="a00338_source.html#l00014">tagDDEPACK::uiHi</a>, <a class="el" href="a00338_source.html#l00013">tagDDEPACK::uiLo</a> , 以及 <a class="el" href="a03188.html#a9c2c31cc2fbb7833978ec0fee18ebb4e">xxxClientCopyDDEOut1()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00553">xxxDDETrackGetMessageHook()</a>.</p>

</div>
</div>
<a id="af647df0fd7600605c1c70baf5ad7540a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af647df0fd7600605c1c70baf5ad7540a">&#9670;&nbsp;</a></span>xxxDDETrackGetMessageHook()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID xxxDDETrackGetMessageHook </td>
          <td>(</td>
          <td class="paramtype">PMSG&#160;</td>
          <td class="paramname"><em>pmsg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>xxxDDETrackGetMessageHook </p>
<p>This routine is used to complete an inter-process copy from the CSRServer context to the target context. pmsg-&gt;lParam is a pxs that is used to obtain the pIntDdeInfo needed to complete the copy. The pxs is either filled with the target side direct handle or is freed depending on the message and its context.</p>
<p>The XS_FREEPXS bit of the flags field of the pxs tells this function to free the pxs when done.</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00553">553</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;{</div>
<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxs;</div>
<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    HANDLE hDirect;</div>
<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags;</div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    BOOL fUnlockDdeConv;</div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <a class="code" href="a01881.html">TL</a> tlpDdeConv, tlpxs;</div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160; </div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    <a class="code" href="a03188.html#aa8ea52319ca33f5f02b7813e98b5dc40">TraceDdeMsg</a>(pmsg-&gt;message, (HWND)pmsg-&gt;wParam, pmsg-&gt;hwnd, MSG_RECV);</div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160; </div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    <span class="keywordflow">if</span> (pmsg-&gt;message == WM_DDE_TERMINATE) {</div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;        <a class="code" href="a02581.html">PWND</a> pwndFrom, pwndTo;</div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;        <a class="code" href="a02993.html">PDDECONV</a> pDdeConv;</div>
<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160; </div>
<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;        pwndTo = <a class="code" href="a00293.html#a41d387d1b2d42169cbaa2092c8a02abf">ValidateHwnd</a>(pmsg-&gt;hwnd);</div>
<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        pwndFrom = <a class="code" href="a00293.html#a41d387d1b2d42169cbaa2092c8a02abf">ValidateHwnd</a>((HWND)pmsg-&gt;wParam);</div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;        <span class="keywordflow">if</span> (pwndTo == NULL || pwndFrom == NULL) {</div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;            <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;TERMINATE ignored, invalid window(s).&quot;</span>);</div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;            <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;        }</div>
<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160; </div>
<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="comment">         * locate conversation info.</span></div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        pDdeConv = <a class="code" href="a03188.html#acc1f6b0b99ae06f21ed9afd412ed58c1">FindDdeConv</a>(pwndTo, pwndFrom);</div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;        <span class="keywordflow">if</span> (pDdeConv == NULL) {</div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;<span class="comment">             * Must be a harmless extra terminate.</span></div>
<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;            <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;TERMINATE ignored, conversation not found.&quot;</span>);</div>
<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;            <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;        }</div>
<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160; </div>
<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;        <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; CXF_TERMINATE_POSTED &amp;&amp;</div>
<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;                pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; CXF_TERMINATE_POSTED) {</div>
<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160; </div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="comment">             * clean up client side objects on this side</span></div>
<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;            fUnlockDdeConv = FALSE;</div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;            <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#ae9156c7bff04b6486833a17b295a3625">pfl</a> != NULL) {</div>
<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;                <a class="code" href="a02985.html">PFREELIST</a> pfl;</div>
<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160; </div>
<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;                fUnlockDdeConv = TRUE;</div>
<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;                ThreadLockAlways(pDdeConv, &amp;tlpDdeConv);</div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;                </div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;                pfl = pDdeConv-&gt;<a class="code" href="a02993.html#ae9156c7bff04b6486833a17b295a3625">pfl</a>;</div>
<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;                pDdeConv-&gt;<a class="code" href="a02993.html#ae9156c7bff04b6486833a17b295a3625">pfl</a> = NULL;</div>
<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;                <a class="code" href="a03188.html#adaafd7af5ff85c82b8c72430bc4026fa">xxxFreeListFree</a>(pfl);</div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;            }</div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160; </div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;            <a class="code" href="a03188.html#a30127ac83fc0e41ffc19694a5d8baba1">TRACE_DDE2</a>(<span class="stringliteral">&quot;DDE conversation (%0lx:%0lx) closed&quot;</span>,</div>
<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;                    (pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; CXF_IS_SERVER) ? pmsg-&gt;wParam : (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>)pmsg-&gt;hwnd,</div>
<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;                    (pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; CXF_IS_SERVER) ? (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>)pmsg-&gt;hwnd : pmsg-&gt;wParam);</div>
<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160; </div>
<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;            <a class="code" href="a03188.html#a43930b8020a18f624b36503842b0454d">FreeDdeConv</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>);</div>
<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;            <a class="code" href="a03188.html#a43930b8020a18f624b36503842b0454d">FreeDdeConv</a>(pDdeConv);</div>
<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160; </div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;            <span class="keywordflow">if</span> (fUnlockDdeConv) {</div>
<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;                ThreadUnlock(&amp;tlpDdeConv);</div>
<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;            }</div>
<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        }</div>
<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    }</div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160; </div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    pxs = (<a class="code" href="a00899.html#a0fc61225a7d3f9950b01c459dad66f4b">PXSTATE</a>)<a class="code" href="a00365.html#ab993ad57b0d56b4f9b64df02256b611c">HMValidateHandleNoRip</a>((HANDLE)pmsg-&gt;lParam, TYPE_DDEXACT);</div>
<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    <span class="keywordflow">if</span> (pxs == NULL) {</div>
<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;<span class="comment">         * The posting window has died and the pxs was freed so this</span></div>
<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;<span class="comment">         * message shouldn&#39;t be bothered with...map to WM_NULL.</span></div>
<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;        pmsg-&gt;lParam = 0;</div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        pmsg-&gt;message = WM_NULL;</div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    }</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    flags = pxs-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a>;</div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160; </div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;    ThreadLockAlways(pxs, &amp;tlpxs);</div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    pmsg-&gt;lParam = (LONG)<a class="code" href="a03188.html#a012998a925dcedadcacca4505c103d03">xxxCopyDDEOut</a>(pxs-&gt;<a class="code" href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">pIntDdeInfo</a>, &amp;hDirect);</div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;    <span class="keywordflow">if</span> (pmsg-&gt;lParam == (LPARAM)NULL) {</div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;<span class="comment">         * Turn this message into a terminate - we failed to copy the</span></div>
<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;<span class="comment">         * message data out which implies we are too low on memory</span></div>
<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;<span class="comment">         * to continue the conversation.  Shut it down now before</span></div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;<span class="comment">         * other problems pop up that this failure will cause.</span></div>
<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        pmsg-&gt;message = WM_DDE_TERMINATE;</div>
<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a>, <span class="stringliteral">&quot;DDETrack: couldn&#39;t copy data out, terminate faked.&quot;</span>);</div>
<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    }</div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <span class="keywordflow">if</span> (ThreadUnlock(&amp;tlpxs) == NULL) {</div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    }</div>
<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160; </div>
<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    <span class="keywordflow">if</span> (flags &amp; <a class="code" href="a00338.html#ae8a042e8f11aa1922d2f1c4e5598d587">XS_FREEPXS</a>) {</div>
<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        <a class="code" href="a03188.html#af404d275bfc5fe7e3d047b3fa3366ccf">FreeDdeXact</a>(pxs);</div>
<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    }</div>
<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160; </div>
<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;<span class="comment">     * The only reason XS_FREEPXS isn&#39;t set is because we don&#39;t know which</span></div>
<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;<span class="comment">     * side frees the data till an ACK comes back, thus one of the client</span></div>
<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;<span class="comment">     * handles in pxs is already set via xxxDDETrackPostHook().  The one thats</span></div>
<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;<span class="comment">     * not yet set gets set here.</span></div>
<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160; </div>
<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    <span class="keywordflow">if</span> (pxs-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a> == NULL) {</div>
<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;        <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;Saving %x into hClient&quot;</span>, hDirect);</div>
<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;        pxs-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a> = hDirect;</div>
<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;        <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;Saving %x into hServer.&quot;</span>, hDirect);</div>
<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        pxs-&gt;<a class="code" href="a02997.html#a36fe11d5a7a27923af9b2899a24e5464">hServer</a> = hDirect;</div>
<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;    }</div>
<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a03188_source.html#l01669">FindDdeConv()</a>, <a class="el" href="a00899_source.html#l04672">tagDDECONV::flags</a>, <a class="el" href="a00899_source.html#l04686">tagXSTATE::flags</a>, <a class="el" href="a03188_source.html#l01872">FreeDdeConv()</a>, <a class="el" href="a03188_source.html#l02100">FreeDdeXact()</a>, <a class="el" href="a00899_source.html#l04683">tagXSTATE::hClient</a>, <a class="el" href="a03752_source.html#l00303">HMValidateHandleNoRip()</a>, <a class="el" href="a00899_source.html#l04684">tagXSTATE::hServer</a>, <a class="el" href="a00899_source.html#l04671">tagDDECONV::pfl</a>, <a class="el" href="a00899_source.html#l04685">tagXSTATE::pIntDdeInfo</a>, <a class="el" href="a00371_source.html#l00029">RIP_WARNING</a>, <a class="el" href="a00371_source.html#l00131">RIPMSG0</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a03188_source.html#l00029">TRACE_DDE1</a>, <a class="el" href="a03188_source.html#l00030">TRACE_DDE2</a>, <a class="el" href="a03188_source.html#l00089">TraceDdeMsg</a>, <a class="el" href="a00293_source.html#l00090">ValidateHwnd</a>, <a class="el" href="a00338_source.html#l00052">XS_FREEPXS</a>, <a class="el" href="a03188_source.html#l01975">xxxCopyDDEOut()</a> , 以及 <a class="el" href="a03188_source.html#l01799">xxxFreeListFree()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00824_source.html#l02551">xxxReadPostMessage()</a>.</p>

</div>
</div>
<a id="a6a4f1209e6b46089d96dfc7dc5eb5207"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a4f1209e6b46089d96dfc7dc5eb5207">&#9670;&nbsp;</a></span>xxxDDETrackPostHook()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxDDETrackPostHook </td>
          <td>(</td>
          <td class="paramtype">PUINT&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndTo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">WPARAM&#160;</td>
          <td class="paramname"><em>wParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BOOL&#160;</td>
          <td class="paramname"><em>fSent</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>xxxDDETrackPostHook </p>
<p>Hook function for handling posted DDE messages.</p>
<p>returns post action code - DO_POST, FAKE_POST, FAIL_POST.</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00324">324</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;{</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    <a class="code" href="a02581.html">PWND</a> pwndFrom;</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    <a class="code" href="a02993.html">PDDECONV</a> pDdeConv = NULL;</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> dwRet;</div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <a class="code" href="a01881.html">TL</a> tlpDdeConv;</div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <a class="code" href="a02985.html">PFREELIST</a> pfl;</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> MFlag;</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160; </div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pwndTo);</div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160; </div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    MFlag = fSent ? MF_SENDMSGS : MF_POSTMSGS;</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a00650.html#aeedf4ff87347e042a697331c6ca6b469">MonitorFlags</a> &amp; MFlag) {</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        DDEML_MSG_HOOK_DATA dmhd;</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="keywordflow">switch</span> (*pmessage ) {</div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        <span class="keywordflow">case</span> WM_DDE_DATA:</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        <span class="keywordflow">case</span> WM_DDE_POKE:</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        <span class="keywordflow">case</span> WM_DDE_ADVISE:</div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="keywordflow">case</span> WM_DDE_EXECUTE:</div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        <span class="keywordflow">case</span> WM_DDE_ACK:</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;            <a class="code" href="a00650.html#a3c555be42b2fb6bd81d5d7c128b96626">ClientGetDDEHookData</a>(*pmessage, *plParam, &amp;dmhd);</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;            <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160; </div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;            <span class="comment">// WM_DDE_REQUEST</span></div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;            <span class="comment">// WM_DDE_TERMINATE</span></div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;            <span class="comment">// WM_DDE_UNADVISE</span></div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;            dmhd.cbData = 0;</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;            dmhd.uiLo = LOWORD(*plParam);</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;            dmhd.uiHi = HIWORD(*plParam);</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        }</div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <a class="code" href="a00650.html#aff3f50b4985cd6ad250da7ca84148cd4">xxxMessageEvent</a>(pwndTo, *pmessage, wParam, *plParam, MFlag,</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;                &amp;dmhd);</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    }</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160; </div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>()-&gt;ppi == GETPWNDPPI(pwndTo)) {</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="comment">         * skip all intra-process conversation tracking.</span></div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        dwRet = <a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>;</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <span class="keywordflow">goto</span> Exit;</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    }</div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    <span class="keywordflow">if</span> (*pmessage == WM_DDE_INITIATE) {</div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <a class="code" href="a00371.html#a906cb0845450a5d5422ce513ecd8a32f">RIPMSG2</a>(<a class="code" href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a>,</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;                <span class="stringliteral">&quot;DDE Post failed (%0lx:%0lx) - WM_DDE_INITIATE posted&quot;</span>,</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;                wParam, PtoH(pwndTo));</div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        dwRet = <a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>;</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        <span class="keywordflow">goto</span> Exit;</div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    }</div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160; </div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    pwndFrom = <a class="code" href="a00293.html#a41d387d1b2d42169cbaa2092c8a02abf">ValidateHwnd</a>((HWND)wParam);</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    <span class="keywordflow">if</span> (pwndFrom == NULL) {</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="comment">         * This is a post AFTER a window has been destroyed.  This is not</span></div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;<span class="comment">         * expected except in the case where xxxDdeTrackWindowDying()</span></div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="comment">         * is posting a cleanup terminate.</span></div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;        dwRet = *pmessage == WM_DDE_TERMINATE ? <a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a> : <a class="code" href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a>;</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <span class="keywordflow">goto</span> Exit;</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    }</div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160; </div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="comment">     * locate conversation info.</span></div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    pDdeConv = <a class="code" href="a03188.html#acc1f6b0b99ae06f21ed9afd412ed58c1">FindDdeConv</a>(pwndFrom, pwndTo);</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keywordflow">if</span> (pDdeConv == NULL) {</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        <span class="keywordflow">if</span> (*pmessage != WM_DDE_TERMINATE &amp;&amp;</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;                (GETPTI(pwndFrom)-&gt;TIF_flags &amp; TIF_16BIT) &amp;&amp;</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;                (pwndTo-&gt;<a class="code" href="a02581.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.rpdesk == pwndFrom-&gt;<a class="code" href="a02581.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.rpdesk)) {</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="comment">             * If a WOW app bypasses initiates and posts directly to</span></div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="comment">             * a window on the same desktop, let it sneak by here.</span></div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="comment">             *</span></div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="comment">             * This allows some evil apps such as OpenEngine and CA-Cricket</span></div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="comment">             * to get away with murder.</span></div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="comment">             *</span></div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;<span class="comment">             * TERMINATES out of the blue however may be due to an app</span></div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="comment">             * posting its WM_DDE_TERMINATE after it has destroyed its</span></div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="comment">             * window.  Since window destruction would have generated the</span></div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="comment">             * TERMINATE already, don&#39;t let it through here.</span></div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;            <a class="code" href="a03188.html#ad9866dc880fb184dc8046ddbc41ce0c4">NewConversation</a>(&amp;pDdeConv, NULL, pwndFrom, pwndTo);</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        }</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        <span class="keywordflow">if</span> (pDdeConv == NULL) {</div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;            <a class="code" href="a00371.html#a906cb0845450a5d5422ce513ecd8a32f">RIPMSG2</a>(<a class="code" href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a>, <span class="stringliteral">&quot;Can&#39;t find DDE conversation for (%0lx:%0lx).&quot;</span>,</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;                    wParam, PtoH(pwndTo));</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;            dwRet = *pmessage == WM_DDE_TERMINATE ? <a class="code" href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a> : <a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>;</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;            <span class="keywordflow">goto</span> Exit;</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        }</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    }</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160; </div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    <span class="keywordflow">if</span> (fSent &amp;&amp; pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a> != NULL) {</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="comment">         * Sent DDE messages will not work if any posted DDE messages are</span></div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="comment">         * in the queue because this will violate the message ordering rule.</span></div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a>,</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;                <span class="stringliteral">&quot;Sent DDE message failed - queue contains a previous post.&quot;</span>);</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        dwRet = <a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>;</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        <span class="keywordflow">goto</span> Exit;</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    }</div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160; </div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="comment">     * The tracking layer never did allow multiple threads to handle</span></div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="comment">     * the same DDE conversation but win95 shipped and some apps</span></div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="comment">     * got out there that did just this.  We will let it slide for</span></div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="comment">     * 4.0 apps only so that when they rev their app, they will see</span></div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;<span class="comment">     * that they were wrong.</span></div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>() != GETPTI(pDdeConv) &amp;&amp;</div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;            <a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>()-&gt;dwExpWinVer != VER40) {</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;        <a class="code" href="a00371.html#ae61d954062a9ece52e350e54cad9a23d">RIPERR0</a>(ERROR_WINDOW_OF_OTHER_THREAD,</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;                <a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>,</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;                <span class="stringliteral">&quot;Posting DDE message from wrong thread!&quot;</span>);</div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160; </div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        dwRet = <a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>;</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        <span class="keywordflow">goto</span> Exit;</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    }</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160; </div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    ThreadLockAlways(pDdeConv, &amp;tlpDdeConv);</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160; </div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    pfl = pDdeConv-&gt;<a class="code" href="a02993.html#ae9156c7bff04b6486833a17b295a3625">pfl</a>;</div>
<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    pDdeConv-&gt;<a class="code" href="a02993.html#ae9156c7bff04b6486833a17b295a3625">pfl</a> = NULL;</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    <a class="code" href="a03188.html#adaafd7af5ff85c82b8c72430bc4026fa">xxxFreeListFree</a>(pfl);</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160; </div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <span class="keywordflow">if</span> (*pmessage != WM_DDE_TERMINATE &amp;&amp;</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;            (pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; (CXF_TERMINATE_POSTED | CXF_PARTNER_WINDOW_DIED))) {</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        dwRet = <a class="code" href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a>;</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        <span class="keywordflow">goto</span> UnlockExit;</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    }</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160; </div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;    <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a> == NULL) {</div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; CXF_IS_SERVER) {</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;            dwRet = <a class="code" href="a03188.html#acb683c4e669b34c6ce535d4d8c77aced">xxxUnexpectedServerPost</a>((PDWORD)pmessage, plParam, pDdeConv);</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;            dwRet = <a class="code" href="a03188.html#a6006542cc1c1b798a4033b658f8df083">xxxUnexpectedClientPost</a>((PDWORD)pmessage, plParam, pDdeConv);</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        }</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;        dwRet = (pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a2a67c5458463585258b56b4ed6919bed">fnResponse</a>)(pmessage, plParam, pDdeConv);</div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    }</div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160; </div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;UnlockExit:</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160; </div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;    ThreadUnlock(&amp;tlpDdeConv);</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160; </div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;Exit:</div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160; </div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <span class="keywordflow">if</span> (dwRet == <a class="code" href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a> &amp;&amp; !((<a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>())-&gt;TIF_flags &amp; TIF_INCLEANUP)) {</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="comment">         * We faked the post so do a client side cleanup here so that we</span></div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="comment">         * don&#39;t make it appear there is a leak in the client app.</span></div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;        <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags = <a class="code" href="a00338.html#a003ed03583fa5b5c3bbdcdd6d3754c53">XS_DUMPMSG</a>;</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="comment">         * The XS_DUMPMSG tells FreeDDEHandle to also free the atoms</span></div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="comment">         * associated with the data - since a faked post would make the app</span></div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="comment">         * think that the receiver was going to cleanup the atoms.</span></div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="comment">         * It also tells FreeDDEHandle to pay attention to the</span></div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="comment">         * fRelease bit when freeing the data - this way, loaned data</span></div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="comment">         * won&#39;t be destroyed.</span></div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160; </div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        <span class="keywordflow">switch</span> (*pmessage &amp; 0xFFFF) {</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        <span class="keywordflow">case</span> WM_DDE_UNADVISE:</div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        <span class="keywordflow">case</span> WM_DDE_REQUEST:</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;            <span class="keywordflow">goto</span> DumpMsg;</div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160; </div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;        <span class="keywordflow">case</span> WM_DDE_ACK:</div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;            flags |= <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>;</div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;            <span class="keywordflow">goto</span> DumpMsg;</div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160; </div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;        <span class="keywordflow">case</span> WM_DDE_ADVISE:</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;            flags |= <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a> | <a class="code" href="a00338.html#a146caa6f3761f9e3139445e6461833f1">XS_HIHANDLE</a>;</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;            <span class="keywordflow">goto</span> DumpMsg;</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160; </div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        <span class="keywordflow">case</span> WM_DDE_DATA:</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;        <span class="keywordflow">case</span> WM_DDE_POKE:</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;            flags |= <a class="code" href="a00338.html#ad14ea0aadf6e104762e56ef12b056e49">XS_DATA</a> | <a class="code" href="a00338.html#a0c63f2942d3dd52ed9d738ef9a2df7f9">XS_LOHANDLE</a> | <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>;</div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;            <span class="keywordflow">goto</span> DumpMsg;</div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160; </div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;        <span class="keywordflow">case</span> WM_DDE_EXECUTE:</div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;            flags |= <a class="code" href="a00338.html#a345eb88b1c293dc4c9445d8eaca6accc">XS_EXECUTE</a>;</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;            <span class="comment">// fall through</span></div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;DumpMsg:</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;            <span class="keywordflow">if</span> (pDdeConv != NULL) {</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;                <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxDdeTrackPostHook: dumping message...&quot;</span>);</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;                <a class="code" href="a03188.html#ae043671c73200068a05ef48e473fcf4e">FreeDDEHandle</a>(pDdeConv, (HANDLE)*plParam, flags);</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;            }</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;        }</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;    }</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    <span class="keywordflow">if</span> (fSent) {</div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;        <a class="code" href="a03188.html#aa8ea52319ca33f5f02b7813e98b5dc40">TraceDdeMsg</a>(*pmessage, (HWND)wParam, PtoH(pwndTo), MSG_SENT);</div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        <a class="code" href="a03188.html#aa8ea52319ca33f5f02b7813e98b5dc40">TraceDdeMsg</a>(*pmessage, (HWND)wParam, PtoH(pwndTo), MSG_POST);</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    }</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    <span class="keywordflow">if</span> (dwRet == <a class="code" href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a>) {</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;        <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;...FAKED!&quot;</span>);</div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (dwRet == <a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>) {</div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;        <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;...FAILED!&quot;</span>);</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;    }</div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;<span class="preprocessor">#endif // DEBUG</span></div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    <span class="keywordflow">return</span>(dwRet);</div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00650.html#a3c555be42b2fb6bd81d5d7c128b96626">ClientGetDDEHookData()</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a00338_source.html#l00062">FAKE_POST</a>, <a class="el" href="a03188_source.html#l01669">FindDdeConv()</a>, <a class="el" href="a00899_source.html#l04672">tagDDECONV::flags</a>, <a class="el" href="a00899_source.html#l04682">tagXSTATE::fnResponse</a>, <a class="el" href="a03188_source.html#l01775">FreeDDEHandle()</a>, <a class="el" href="a00365_source.html#l01389">tagWND::head</a>, <a class="el" href="a00677_source.html#l00017">MonitorFlags</a>, <a class="el" href="a03188_source.html#l01624">NewConversation()</a>, <a class="el" href="a00899_source.html#l04671">tagDDECONV::pfl</a>, <a class="el" href="a00263_source.html#l00526">PtiCurrent()</a>, <a class="el" href="a00371_source.html#l00028">RIP_ERROR</a>, <a class="el" href="a00371_source.html#l00030">RIP_VERBOSE</a>, <a class="el" href="a00371_source.html#l00029">RIP_WARNING</a>, <a class="el" href="a00371_source.html#l00119">RIPERR0</a>, <a class="el" href="a00371_source.html#l00131">RIPMSG0</a>, <a class="el" href="a00371_source.html#l00133">RIPMSG2</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04669">tagDDECONV::spxsOut</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a03188_source.html#l00089">TraceDdeMsg</a>, <a class="el" href="a00293_source.html#l00090">ValidateHwnd</a>, <a class="el" href="a00338_source.html#l00044">XS_DATA</a>, <a class="el" href="a00338_source.html#l00058">XS_DUMPMSG</a>, <a class="el" href="a00338_source.html#l00054">XS_EXECUTE</a>, <a class="el" href="a00338_source.html#l00051">XS_HIHANDLE</a>, <a class="el" href="a00338_source.html#l00050">XS_LOHANDLE</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a03188_source.html#l01799">xxxFreeListFree()</a>, <a class="el" href="a00677_source.html#l00250">xxxMessageEvent()</a>, <a class="el" href="a03188_source.html#l00039">xxxUnexpectedClientPost</a> , 以及 <a class="el" href="a03188_source.html#l00038">xxxUnexpectedServerPost</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03290_source.html#l00918">_PostMessage()</a> , 以及 <a class="el" href="a03614_source.html#l08175">MESSAGECALL()</a>.</p>

</div>
</div>
<a id="a64784361de3f90215827f6d66600d58f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a64784361de3f90215827f6d66600d58f">&#9670;&nbsp;</a></span>xxxDDETrackSendHook()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL xxxDDETrackSendHook </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwndTo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">WPARAM&#160;</td>
          <td class="paramname"><em>wParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LONG&#160;</td>
          <td class="paramname"><em>lParam</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>xxxDDETrackSendHook </p>
<p>Called when a DDE message is passed to SendMessage().</p>
<p>Returns fSendOk.</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00157">157</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;{</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <a class="code" href="a02581.html">PWND</a> pwndServer;</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <a class="code" href="a02993.html">PDDECONV</a> pdcNewClient, pdcNewServer;</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a00650.html#aeedf4ff87347e042a697331c6ca6b469">MonitorFlags</a> &amp; MF_SENDMSGS) {</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        DDEML_MSG_HOOK_DATA dmhd;</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        dmhd.cbData = 0;    <span class="comment">// Initiate and Ack sent messages have no data.</span></div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        dmhd.uiLo = LOWORD(lParam);     <span class="comment">// they arn&#39;t packed either.</span></div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        dmhd.uiHi = HIWORD(lParam);</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <a class="code" href="a00650.html#aff3f50b4985cd6ad250da7ca84148cd4">xxxMessageEvent</a>(pwndTo, message, wParam, lParam, MF_SENDMSGS, &amp;dmhd);</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    }</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>()-&gt;ppi == GETPWNDPPI(pwndTo)) {</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">         * Skip monitoring of all intra-process conversations.</span></div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;        <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    }</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="keywordflow">if</span> (message != WM_DDE_ACK) {</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keywordflow">if</span> (message == WM_DDE_INITIATE) {</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;            <span class="keywordflow">return</span> TRUE;     <span class="comment">// this is cool</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        }</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    }</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160; </div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    pwndServer = <a class="code" href="a00293.html#a41d387d1b2d42169cbaa2092c8a02abf">ValidateHwnd</a>((HWND)wParam);</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="keywordflow">if</span> (pwndServer == NULL) {</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    }</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    pdcNewServer = <a class="code" href="a03188.html#acc1f6b0b99ae06f21ed9afd412ed58c1">FindDdeConv</a>(pwndServer, pwndTo);</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keywordflow">if</span> (pdcNewServer != NULL) {</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        <a class="code" href="a00371.html#a906cb0845450a5d5422ce513ecd8a32f">RIPMSG2</a>(<a class="code" href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a>,</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;                <span class="stringliteral">&quot;DDE protocol violation - non-unique window pair (%0lx:%0lx)&quot;</span>,</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                PtoH(pwndTo), PtoH(pwndServer));</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment">         * Duplicate Conversation case:</span></div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="comment">         *  Don&#39;t allow the ACK to pass, post a terminate to the server</span></div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="comment">         *  to shut down the duplicate on his end.</span></div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        <a class="code" href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">AnticipatePost</a>(pdcNewServer, <a class="code" href="a03188.html#a72e9e0264b68e38ccf936fb376b17344">DupConvTerminate</a>, NULL, NULL, NULL, 0);</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <a class="code" href="a00257.html#a933a4a4818762a03428fe021dd9772a4">_PostMessage</a>(pwndServer, WM_DDE_TERMINATE, (<a class="code" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a>)PtoH(pwndTo), 0);</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    }</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordflow">if</span> (!<a class="code" href="a03188.html#ad9866dc880fb184dc8046ddbc41ce0c4">NewConversation</a>(&amp;pdcNewClient, &amp;pdcNewServer, pwndTo, pwndServer)) {</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordflow">return</span>(FALSE);</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    }</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <a class="code" href="a03188.html#a30127ac83fc0e41ffc19694a5d8baba1">TRACE_DDE2</a>(<span class="stringliteral">&quot;%0lx-&gt;%0lx DDE Conversation started&quot;</span>, PtoH(pwndTo), wParam);</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="keywordflow">return</span>(TRUE);</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00257.html#a933a4a4818762a03428fe021dd9772a4">_PostMessage()</a>, <a class="el" href="a03188_source.html#l01492">AnticipatePost()</a>, <a class="el" href="a03188_source.html#l00053">DupConvTerminate</a>, <a class="el" href="a03188_source.html#l01669">FindDdeConv()</a>, <a class="el" href="a00677_source.html#l00017">MonitorFlags</a>, <a class="el" href="a03188_source.html#l01624">NewConversation()</a>, <a class="el" href="a00263_source.html#l00526">PtiCurrent()</a>, <a class="el" href="a00371_source.html#l00029">RIP_WARNING</a>, <a class="el" href="a00371_source.html#l00133">RIPMSG2</a>, <a class="el" href="a03188_source.html#l00030">TRACE_DDE2</a>, <a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT()</a>, <a class="el" href="a00293_source.html#l00090">ValidateHwnd</a> , 以及 <a class="el" href="a00677_source.html#l00250">xxxMessageEvent()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00842_source.html#l00644">xxxSendMessageTimeout()</a>.</p>

</div>
</div>
<a id="add08e2cb30dfbd4d2b0375a3d1530ead"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add08e2cb30dfbd4d2b0375a3d1530ead">&#9670;&nbsp;</a></span>xxxDDETrackWindowDying()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID xxxDDETrackWindowDying </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>xxxDDETrackWindowDying </p>
<p>Called when a window with PROP_DDETRACK is destroyed.</p>
<p>This posts a terminate to the partner window and sets up for proper terminate post fake from other end.</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00682">682</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;{</div>
<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    <a class="code" href="a02993.html">PDDECONV</a> pDdeConvNext;</div>
<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    <a class="code" href="a01881.html">TL</a> tlpDdeConv;</div>
<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160; </div>
<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pwnd);</div>
<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160; </div>
<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    <a class="code" href="a03188.html#a30127ac83fc0e41ffc19694a5d8baba1">TRACE_DDE2</a>(<span class="stringliteral">&quot;xxxDDETrackWindowDying(%0lx, %0lx)&quot;</span>, PtoH(pwnd), pDdeConv);</div>
<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160; </div>
<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="keywordflow">while</span> (pDdeConv != NULL) {</div>
<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160; </div>
<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;        <a class="code" href="a02985.html">PFREELIST</a> pfl;</div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160; </div>
<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;<span class="comment">         * If there are any active conversations for this window</span></div>
<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;<span class="comment">         * start termination if not already started.</span></div>
<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;        <span class="keywordflow">if</span> (!(pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; CXF_TERMINATE_POSTED)) {</div>
<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;<span class="comment">             * CXF_TERMINATE_POSTED would have been set if the window had died.</span></div>
<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;            <a class="code" href="a00257.html#a933a4a4818762a03428fe021dd9772a4">_PostMessage</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>, WM_DDE_TERMINATE,</div>
<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;                    (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>)PtoH(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>), 0);</div>
<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;            <span class="comment">// pDdeConv-&gt;flags |= CXF_TERMINATE_POSTED;  set by PostHookProc</span></div>
<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;        }</div>
<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160; </div>
<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;<span class="comment">         * now fake that the other side already posted a terminate since</span></div>
<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;<span class="comment">         * we will be gone.</span></div>
<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;        pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> |=</div>
<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;                CXF_TERMINATE_POSTED | CXF_PARTNER_WINDOW_DIED;</div>
<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;        pDdeConvNext = pDdeConv-&gt;<a class="code" href="a02993.html#a25b948ee008e305bdebef4c13d63a9dd">snext</a>;</div>
<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;        ThreadLockAlways(pDdeConv, &amp;tlpDdeConv);</div>
<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;        </div>
<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;        pfl = pDdeConv-&gt;<a class="code" href="a02993.html#ae9156c7bff04b6486833a17b295a3625">pfl</a>;</div>
<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;        pDdeConv-&gt;<a class="code" href="a02993.html#ae9156c7bff04b6486833a17b295a3625">pfl</a> = NULL;</div>
<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;        </div>
<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;        <span class="keywordflow">if</span> (pDdeConv-&gt;<a class="code" href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; CXF_PARTNER_WINDOW_DIED) {</div>
<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160; </div>
<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;            ThreadUnlock(&amp;tlpDdeConv);</div>
<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;<span class="comment">             * he&#39;s already gone, free up conversation tracking data</span></div>
<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;            <a class="code" href="a03188.html#a43930b8020a18f624b36503842b0454d">FreeDdeConv</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>);</div>
<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;            <a class="code" href="a03188.html#a43930b8020a18f624b36503842b0454d">FreeDdeConv</a>(pDdeConv);</div>
<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;            <a class="code" href="a03188.html#a4c49e6f19d941a1747493eaf7131eaeb">UnlinkConv</a>(pDdeConv);</div>
<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;            ThreadUnlock(&amp;tlpDdeConv);</div>
<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;        }</div>
<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;        <a class="code" href="a03188.html#adaafd7af5ff85c82b8c72430bc4026fa">xxxFreeListFree</a>(pfl);</div>
<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160; </div>
<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;        pDdeConv = pDdeConvNext;</div>
<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    }</div>
<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00257.html#a933a4a4818762a03428fe021dd9772a4">_PostMessage()</a>, <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00899_source.html#l04672">tagDDECONV::flags</a>, <a class="el" href="a03188_source.html#l01872">FreeDdeConv()</a>, <a class="el" href="a00899_source.html#l04671">tagDDECONV::pfl</a>, <a class="el" href="a00899_source.html#l04665">tagDDECONV::snext</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04667">tagDDECONV::spwnd</a>, <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>, <a class="el" href="a03188_source.html#l00030">TRACE_DDE2</a>, <a class="el" href="a03188_source.html#l00268">UnlinkConv()</a> , 以及 <a class="el" href="a03188_source.html#l01799">xxxFreeListFree()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00635_source.html#l01817">xxxFreeWindow()</a>.</p>

</div>
</div>
<a id="a6ce9ba9dcb35119545f8aeccc0c6c8de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ce9ba9dcb35119545f8aeccc0c6c8de">&#9670;&nbsp;</a></span>xxxExecute()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxExecute </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>EXECUTE TRANSACTION PROCESSING * \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01326">1326</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;{</div>
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags;</div>
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pIntDdeInfo;</div>
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;    HANDLE hDirect;</div>
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; </div>
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; </div>
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxExecute&quot;</span>);</div>
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; </div>
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;    flags = <a class="code" href="a00338.html#a345eb88b1c293dc4c9445d8eaca6accc">XS_EXECUTE</a>;</div>
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;    <span class="keywordflow">if</span> (!TestWF(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>, WFANSIPROC) &amp;&amp;</div>
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;            !TestWF(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>, WFANSIPROC)) {</div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;        flags |= <a class="code" href="a00338.html#a56ea24ff44220334d5b0f2fb34fbfdf7">XS_UNICODE</a>;</div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;    }</div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;    pIntDdeInfo = <a class="code" href="a03188.html#a3d51f7beeb110632d20c93fa1f730741">xxxCopyDdeIn</a>((HANDLE)*plParam, &amp;flags, &amp;hDirect, pDdeConv);</div>
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo != NULL) {</div>
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;        *pmessage |= MSGFLAG_DDE_MID_THUNK;</div>
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;        *plParam = (LONG)<a class="code" href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">AnticipatePost</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>, <a class="code" href="a03188.html#a6c48d552239777b3b29ca2191f71faa3">xxxExecuteAck</a>,</div>
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;                hDirect, NULL, pIntDdeInfo, flags);</div>
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;<span class="comment">         * Check for != 0 to make sure the AnticipatePost() succeeded.</span></div>
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;        <span class="keywordflow">if</span> (*plParam != 0) {</div>
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; </div>
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;<span class="comment">             * In the execute case it is likely that the postee will want to activate</span></div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;<span class="comment">             * itself and come on top (OLE 1.0 is an example). In this case, allow</span></div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;<span class="comment">             * both the postee and the poster to foreground activate for the next</span></div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;<span class="comment">             * activate (poster because it will want to activate itself again</span></div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;<span class="comment">             * probably, once the postee is done.)</span></div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;            GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>)-&gt;TIF_flags |= TIF_ALLOWFOREGROUNDACTIVATE;</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;            GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>)-&gt;TIF_flags |= TIF_ALLOWFOREGROUNDACTIVATE;</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;        }</div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;    }</div>
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;    <span class="keywordflow">return</span>((*plParam &amp;&amp; pIntDdeInfo != NULL) ? <a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a> : <a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l01492">AnticipatePost()</a>, <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04667">tagDDECONV::spwnd</a>, <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a00338_source.html#l00054">XS_EXECUTE</a>, <a class="el" href="a00338_source.html#l00059">XS_UNICODE</a>, <a class="el" href="a03188_source.html#l01931">xxxCopyDdeIn()</a> , 以及 <a class="el" href="a03188_source.html#l00051">xxxExecuteAck</a>.</p>

</div>
</div>
<a id="a0313121a23f9f5876db0879d044a40c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0313121a23f9f5876db0879d044a40c0">&#9670;&nbsp;</a></span>xxxExecuteAck()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxExecuteAck </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01375">1375</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;{</div>
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxsFree;</div>
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pi;</div>
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags = <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a> | <a class="code" href="a00338.html#a8fed429a04625ed6d2f54db690b51264">XS_FREESRC</a> | <a class="code" href="a00338.html#a345eb88b1c293dc4c9445d8eaca6accc">XS_EXECUTE</a>;</div>
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; </div>
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; </div>
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;    <span class="keywordflow">if</span> (*pmessage != WM_DDE_ACK) {</div>
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#acb683c4e669b34c6ce535d4d8c77aced">xxxUnexpectedServerPost</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;    }</div>
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; </div>
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxExecuteAck&quot;</span>);</div>
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;    pi = <a class="code" href="a03188.html#a3d51f7beeb110632d20c93fa1f730741">xxxCopyDdeIn</a>((HANDLE)*plParam, &amp;flags, NULL, pDdeConv);</div>
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;    <span class="keywordflow">if</span> (pi != NULL) {</div>
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;<span class="comment">         * the server must respond to the execute with an ack containing the</span></div>
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;<span class="comment">         * same handle it was given.</span></div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;        pi-&gt;<a class="code" href="a02045.html#aee65ff48ba47da1c554b459e114b7c81">DdePack</a>.<a class="code" href="a02037.html#aef0d0522c1ffb9d2eb8917cb6991a46a">uiHi</a> = (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>)pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a>;</div>
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;        pi-&gt;<a class="code" href="a02045.html#a4359f4e167c2cc6ed3d3df8adce22348">hDirect</a> = NULL;</div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;        pi-&gt;<a class="code" href="a02045.html#a11601f3a72ffd8829e8dc1525fc27d8c">cbDirect</a> = 0;</div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;        *pmessage |= MSGFLAG_DDE_MID_THUNK;</div>
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;        pxsFree = <a class="code" href="a03188.html#a42b25694b2e9031203dae987afbccfe2">Createpxs</a>(NULL, NULL, NULL, pi, <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a> | <a class="code" href="a00338.html#ae8a042e8f11aa1922d2f1c4e5598d587">XS_FREEPXS</a>);</div>
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;        <span class="keywordflow">if</span> (pxsFree != NULL) {</div>
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;            pxsFree-&gt;<a class="code" href="a02997.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.<a class="code" href="a02545.html#a774eeae0f007ae3ea612baf38cd38936">pti</a> = GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>);</div>
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;        }</div>
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;        *plParam = (LONG)PtoH(pxsFree);</div>
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;    }</div>
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;    <span class="keywordflow">if</span> (*plParam &amp;&amp; pi != NULL) {</div>
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;        <a class="code" href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a>(pDdeConv);</div>
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>);</div>
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;    }</div>
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00338_source.html#l00033">tagINTDDEINFO::cbDirect</a>, <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a03188_source.html#l01547">Createpxs()</a>, <a class="el" href="a00338_source.html#l00029">tagINTDDEINFO::DdePack</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a00899_source.html#l04683">tagXSTATE::hClient</a>, <a class="el" href="a00338_source.html#l00031">tagINTDDEINFO::hDirect</a>, <a class="el" href="a00899_source.html#l04680">tagXSTATE::head</a>, <a class="el" href="a03188_source.html#l01831">PopState()</a>, <a class="el" href="a00365_source.html#l01140">_THROBJHEAD::pti</a>, <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>, <a class="el" href="a00899_source.html#l04669">tagDDECONV::spxsOut</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a00338_source.html#l00014">tagDDEPACK::uiHi</a>, <a class="el" href="a00338_source.html#l00054">XS_EXECUTE</a>, <a class="el" href="a00338_source.html#l00052">XS_FREEPXS</a>, <a class="el" href="a00338_source.html#l00055">XS_FREESRC</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a03188_source.html#l01931">xxxCopyDdeIn()</a> , 以及 <a class="el" href="a03188_source.html#l00038">xxxUnexpectedServerPost</a>.</p>

</div>
</div>
<a id="adaafd7af5ff85c82b8c72430bc4026fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adaafd7af5ff85c82b8c72430bc4026fa">&#9670;&nbsp;</a></span>xxxFreeListFree()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID xxxFreeListFree </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00899.html#a58c59789328731021e048007fc0c904c">PFREELIST</a>&#160;</td>
          <td class="paramname"><em>pfl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>xxxFreeListFree </p>
<p>Frees contents of the free list associated with pDdeConv.</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01799">1799</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;{</div>
<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;    <a class="code" href="a02985.html">PFREELIST</a> pflPrev;</div>
<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;    BOOL      fInCleanup;</div>
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160; </div>
<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;    <span class="keywordflow">if</span> (pfl == NULL) {</div>
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;    }</div>
<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; </div>
<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;    fInCleanup = (<a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>())-&gt;TIF_flags &amp; TIF_INCLEANUP;</div>
<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; </div>
<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;    <span class="keywordflow">while</span> (pfl != NULL) {</div>
<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;        <span class="keywordflow">if</span> (!fInCleanup) {</div>
<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;            <a class="code" href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a>(<span class="stringliteral">&quot;Freeing %x from free list.\n&quot;</span>, pfl-&gt;<a class="code" href="a02985.html#a0182b2e472b8af2291079784ca8926c9">h</a>);</div>
<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;            <a class="code" href="a03188.html#a261211d78079bb6310c320826f6b5614">ClientFreeDDEHandle</a>(pfl-&gt;<a class="code" href="a02985.html#a0182b2e472b8af2291079784ca8926c9">h</a>, pfl-&gt;<a class="code" href="a02985.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a>);</div>
<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;        }</div>
<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;        pflPrev = pfl;</div>
<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;        pfl = pfl-&gt;<a class="code" href="a02985.html#a353ca85d3247b98440fe7a40d2547731">next</a>;</div>
<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;        UserFreePool(pflPrev);</div>
<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;    }</div>
<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188.html#a261211d78079bb6310c320826f6b5614">ClientFreeDDEHandle()</a>, <a class="el" href="a00899_source.html#l04653">tagFREELIST::flags</a>, <a class="el" href="a00899_source.html#l04652">tagFREELIST::h</a>, <a class="el" href="a00899_source.html#l04651">tagFREELIST::next</a>, <a class="el" href="a00263_source.html#l00526">PtiCurrent()</a> , 以及 <a class="el" href="a03188_source.html#l00029">TRACE_DDE1</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00553">xxxDDETrackGetMessageHook()</a>, <a class="el" href="a03188_source.html#l00324">xxxDDETrackPostHook()</a> , 以及 <a class="el" href="a03188_source.html#l00682">xxxDDETrackWindowDying()</a>.</p>

</div>
</div>
<a id="ab7eaa978590d0a5b13ab4f062fd2ca65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7eaa978590d0a5b13ab4f062fd2ca65">&#9670;&nbsp;</a></span>xxxPoke()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxPoke </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>POKE TRANSACTION PROCESSING * \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01217">1217</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;{</div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags;</div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pIntDdeInfo;</div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;    HANDLE hDirect;</div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; </div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; </div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxPoke&quot;</span>);</div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;    flags = <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a> | <a class="code" href="a00338.html#a0c63f2942d3dd52ed9d738ef9a2df7f9">XS_LOHANDLE</a> | <a class="code" href="a00338.html#ad14ea0aadf6e104762e56ef12b056e49">XS_DATA</a>;</div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;    pIntDdeInfo = <a class="code" href="a03188.html#a3d51f7beeb110632d20c93fa1f730741">xxxCopyDdeIn</a>((HANDLE)*plParam, &amp;flags, &amp;hDirect, pDdeConv);</div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo != NULL) {</div>
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;        <span class="keywordflow">if</span> (((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wStatus &amp; DDE_FRELEASE) {</div>
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;<span class="comment">             * giving it away</span></div>
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="a03188.html#adbc63426f91636c2045e62267284e0d2">IsObjectPublic</a>(pIntDdeInfo-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>) != NULL) {</div>
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;                <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;DDE Protocol violation - giving away a public GDI object.&quot;</span>);</div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;                UserFreePool(pIntDdeInfo);</div>
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;                <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;            }</div>
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="a03188.html#a9173e7bc878e95973b1571155d7c472a">GiveObject</a>(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wFmt,</div>
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;                    pIntDdeInfo-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>,</div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;                    (W32PID)GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>)-&gt;ppi-&gt;W32Pid)) {</div>
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;                flags |= <a class="code" href="a00338.html#a5a18de9efdf6169f6aec74260c139d63">XS_GIVEBACKONNACK</a>;</div>
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;            }</div>
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;            flags |= <a class="code" href="a00338.html#aeffc0583e2a518c6119cc20bd4f7789d">XS_FRELEASE</a>;</div>
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;<span class="comment">             * on loan</span></div>
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;<span class="comment">             * fAck bit is ignored and assumed on.</span></div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="a03188.html#a9e31e0ef775eeb44f4a0300ebf631a8e">AddPublicObject</a>(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wFmt,</div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;                        pIntDdeInfo-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>,</div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;                        (W32PID)GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>)-&gt;ppi-&gt;W32Pid)) {</div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;                flags |= <a class="code" href="a00338.html#af7863f00089bd052c7d22ff7a932d0a4">XS_PUBLICOBJ</a>;</div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;            }</div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;        }</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;        *pmessage |= MSGFLAG_DDE_MID_THUNK;</div>
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;        *plParam = (LONG)<a class="code" href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">AnticipatePost</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>, <a class="code" href="a03188.html#ac2fa39551f202783b275c9849e506b80">xxxPokeAck</a>,</div>
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;             hDirect, NULL, pIntDdeInfo, flags);</div>
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;    }</div>
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;    <span class="keywordflow">return</span>((*plParam &amp;&amp; pIntDdeInfo != NULL) ? <a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a> : <a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l02160">AddPublicObject()</a>, <a class="el" href="a03188_source.html#l01492">AnticipatePost()</a>, <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a03188_source.html#l02239">GiveObject()</a>, <a class="el" href="a00338_source.html#l00034">tagINTDDEINFO::hIndirect</a>, <a class="el" href="a03188_source.html#l02145">IsObjectPublic()</a>, <a class="el" href="a00371_source.html#l00028">RIP_ERROR</a>, <a class="el" href="a00371_source.html#l00131">RIPMSG0</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04667">tagDDECONV::spwnd</a>, <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a00338_source.html#l00044">XS_DATA</a>, <a class="el" href="a00338_source.html#l00053">XS_FRELEASE</a>, <a class="el" href="a00338_source.html#l00057">XS_GIVEBACKONNACK</a>, <a class="el" href="a00338_source.html#l00050">XS_LOHANDLE</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a00338_source.html#l00056">XS_PUBLICOBJ</a>, <a class="el" href="a03188_source.html#l01931">xxxCopyDdeIn()</a> , 以及 <a class="el" href="a03188_source.html#l00049">xxxPokeAck</a>.</p>

</div>
</div>
<a id="a7765f90aeab9f1242ed52e1be92fcf08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7765f90aeab9f1242ed52e1be92fcf08">&#9670;&nbsp;</a></span>xxxPokeAck()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxPokeAck </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01280">1280</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;{</div>
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxsFree;</div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pIntDdeInfo;</div>
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; </div>
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; </div>
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;    <span class="keywordflow">if</span> (*pmessage != WM_DDE_ACK) {</div>
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#acb683c4e669b34c6ce535d4d8c77aced">xxxUnexpectedServerPost</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;    }</div>
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; </div>
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxPokeAck&quot;</span>);</div>
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; </div>
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;    pIntDdeInfo = <a class="code" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn</a>(pmessage, plParam, pDdeConv);</div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo == NULL) {</div>
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;    }</div>
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; </div>
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;    pxsFree = pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>;</div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;    <span class="keywordflow">if</span> (pIntDdeInfo-&gt;<a class="code" href="a02045.html#aee65ff48ba47da1c554b459e114b7c81">DdePack</a>.<a class="code" href="a02037.html#aebb1baff167483debcd4de699303c47e">uiLo</a> &amp; DDE_FACK) {</div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;        <span class="comment">// positive ack implies server accepted the data - free from</span></div>
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;        <span class="comment">// client at postmessage time iff fRelease was set in poke message.</span></div>
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;        <span class="keywordflow">if</span> (pxsFree-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; <a class="code" href="a00338.html#aeffc0583e2a518c6119cc20bd4f7789d">XS_FRELEASE</a>) {</div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;            <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxPokeAck: delayed freeing client data&quot;</span>);</div>
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;            <a class="code" href="a03188.html#a48dcaddd811e14502e594b925f8425c2">FreeListAdd</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>, pxsFree-&gt;<a class="code" href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">hClient</a>,</div>
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;                    pxsFree-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; ~<a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;        }</div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;        <span class="comment">// Nack means that sender is responsible for freeing it.</span></div>
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;        <span class="comment">// We must free it in the receiver&#39;s context for him.</span></div>
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;        <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxPokeAck: freeing Nacked data&quot;</span>);</div>
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;        <a class="code" href="a03188.html#ae043671c73200068a05ef48e473fcf4e">FreeDDEHandle</a>(pDdeConv, pxsFree-&gt;<a class="code" href="a02997.html#a36fe11d5a7a27923af9b2899a24e5464">hServer</a>, pxsFree-&gt;<a class="code" href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">flags</a> &amp; ~<a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;    }</div>
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;    <a class="code" href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a>(pDdeConv);</div>
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;    <span class="keywordflow">return</span>(<a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>);</div>
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00338_source.html#l00029">tagINTDDEINFO::DdePack</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a00899_source.html#l04686">tagXSTATE::flags</a>, <a class="el" href="a03188_source.html#l01775">FreeDDEHandle()</a>, <a class="el" href="a03188_source.html#l01746">FreeListAdd()</a>, <a class="el" href="a00899_source.html#l04683">tagXSTATE::hClient</a>, <a class="el" href="a00899_source.html#l04684">tagXSTATE::hServer</a>, <a class="el" href="a03188_source.html#l01831">PopState()</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04669">tagDDECONV::spxsOut</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a00338_source.html#l00013">tagDDEPACK::uiLo</a>, <a class="el" href="a00338_source.html#l00053">XS_FRELEASE</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn()</a> , 以及 <a class="el" href="a03188_source.html#l00038">xxxUnexpectedServerPost</a>.</p>

</div>
</div>
<a id="a58f79f90a685158b2cc08f50133111e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58f79f90a685158b2cc08f50133111e3">&#9670;&nbsp;</a></span>xxxRequestAck()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxRequestAck </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01111">1111</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;{</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    <a class="code" href="a02997.html">PXSTATE</a> pxsFree;</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> flags;</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;    <a class="code" href="a02045.html">PINTDDEINFO</a> pIntDdeInfo;</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    HANDLE hDirect;</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;    <a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> dwStatus;</div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; </div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; </div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxRequestAck or xxxAdviseData&quot;</span>);</div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;    <span class="keywordflow">switch</span> (*pmessage) {</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;    <span class="keywordflow">case</span> WM_DDE_DATA:</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; </div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="comment">         * This is very close to advise data handling - the only catch</span></div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="comment">         * is that if the fRequest bit is clear this IS advise data.</span></div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;        flags = <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a> | <a class="code" href="a00338.html#a0c63f2942d3dd52ed9d738ef9a2df7f9">XS_LOHANDLE</a> | <a class="code" href="a00338.html#ad14ea0aadf6e104762e56ef12b056e49">XS_DATA</a>;</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; </div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;        dwStatus = <a class="code" href="a03188.html#a530b8e85574125ff505690b1f386eed6">ClientGetDDEFlags</a>((HANDLE)*plParam, flags);</div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; </div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;        <span class="keywordflow">if</span> (!(dwStatus &amp; DDE_FREQUESTED)) {</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; </div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="comment">             * Its NOT a request Ack - it must be advise data</span></div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="a03188.html#a72d57a23cbe0a924d57f9df300ba9882">xxxAdviseData</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;        }</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; </div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;        pxsFree = pDdeConv-&gt;<a class="code" href="a02993.html#a16207ebade1a142760211395d7dcc0cb">spxsOut</a>;</div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;        pIntDdeInfo = <a class="code" href="a03188.html#a3d51f7beeb110632d20c93fa1f730741">xxxCopyDdeIn</a>((HANDLE)*plParam, &amp;flags, &amp;hDirect, pDdeConv);</div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;        <span class="keywordflow">if</span> (pIntDdeInfo != NULL) {</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;            <span class="keywordflow">if</span> (!(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wStatus &amp; (DDE_FACK | DDE_FRELEASE))) {</div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;                <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;DDE protocol violation - no RELEASE or ACK bit set - setting RELEASE.&quot;</span>);</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;                ((<a class="code" href="a00338.html#a0e02bb78a0e29d73b074fca51b332c2b">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wStatus |= DDE_FRELEASE;</div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;            }</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;            <span class="keywordflow">if</span> (dwStatus &amp; DDE_FRELEASE) {</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<span class="comment">                 * giving it away</span></div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="a03188.html#adbc63426f91636c2045e62267284e0d2">IsObjectPublic</a>(pIntDdeInfo-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>) != NULL) {</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;                    <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;DDE Protocol violation - giving away a public GDI object.&quot;</span>);</div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;                    UserFreePool(pIntDdeInfo);</div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;                    <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;                }</div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="a03188.html#a9173e7bc878e95973b1571155d7c472a">GiveObject</a>(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wFmt,</div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;                        pIntDdeInfo-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>,</div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;                        (W32PID)GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>)-&gt;ppi-&gt;W32Pid)) {</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;                    flags |= <a class="code" href="a00338.html#a5a18de9efdf6169f6aec74260c139d63">XS_GIVEBACKONNACK</a>;</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;                }</div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;                flags |= <a class="code" href="a00338.html#aeffc0583e2a518c6119cc20bd4f7789d">XS_FRELEASE</a>;</div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;            } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;<span class="comment">                 * on loan</span></div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="a03188.html#a9e31e0ef775eeb44f4a0300ebf631a8e">AddPublicObject</a>(((<a class="code" href="a02041.html">PDDE_DATA</a>)(pIntDdeInfo + 1))-&gt;wFmt,</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;                            pIntDdeInfo-&gt;<a class="code" href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">hIndirect</a>,</div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;                            (W32PID)GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>)-&gt;ppi-&gt;W32Pid)) {</div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;                    flags |= <a class="code" href="a00338.html#af7863f00089bd052c7d22ff7a932d0a4">XS_PUBLICOBJ</a>;</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;                }</div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;            }</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;            *pmessage |= MSGFLAG_DDE_MID_THUNK;</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;            <span class="keywordflow">if</span> (dwStatus &amp; DDE_FACK) {</div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;                *plParam = (LONG)<a class="code" href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">AnticipatePost</a>(pDdeConv-&gt;<a class="code" href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">spartnerConv</a>,</div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;                    <a class="code" href="a03188.html#a67b24a92e329ae85db344562e7a551db">xxxAdviseDataAck</a>, NULL, hDirect, pIntDdeInfo, flags);</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;            } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;                <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxRequestAck: Delayed freeing non-ackable request data&quot;</span>);</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;                <a class="code" href="a03188.html#a48dcaddd811e14502e594b925f8425c2">FreeListAdd</a>(pDdeConv, hDirect, flags &amp; ~<a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;                pxsFree = <a class="code" href="a03188.html#a42b25694b2e9031203dae987afbccfe2">Createpxs</a>(NULL, NULL, NULL, pIntDdeInfo, flags | <a class="code" href="a00338.html#ae8a042e8f11aa1922d2f1c4e5598d587">XS_FREEPXS</a>);</div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;                <span class="keywordflow">if</span> (pxsFree != NULL) {</div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;                    pxsFree-&gt;<a class="code" href="a02997.html#a6be2d067ba15d4ec8cfc2e87922094f5">head</a>.<a class="code" href="a02545.html#a774eeae0f007ae3ea612baf38cd38936">pti</a> = GETPTI(pDdeConv-&gt;<a class="code" href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">spwndPartner</a>);</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;                }</div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;                *plParam = (LONG)PtoH(pxsFree);</div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;            }</div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;        }</div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;        <span class="keywordflow">if</span> (*plParam &amp;&amp; pIntDdeInfo != NULL) {</div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;            <a class="code" href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a>(pDdeConv);</div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>);</div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;        }</div>
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; </div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;    <span class="keywordflow">case</span> WM_DDE_ACK:        <span class="comment">// server NACKs request</span></div>
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn</a>(pmessage, plParam, pDdeConv) == NULL) {</div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;        }</div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;        <a class="code" href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a>(pDdeConv);</div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>);</div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; </div>
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;    <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#acb683c4e669b34c6ce535d4d8c77aced">xxxUnexpectedServerPost</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;    }</div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l02160">AddPublicObject()</a>, <a class="el" href="a03188_source.html#l01492">AnticipatePost()</a>, <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a03188.html#a530b8e85574125ff505690b1f386eed6">ClientGetDDEFlags()</a>, <a class="el" href="a03188_source.html#l01547">Createpxs()</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a03188_source.html#l01746">FreeListAdd()</a>, <a class="el" href="a03188_source.html#l02239">GiveObject()</a>, <a class="el" href="a00899_source.html#l04680">tagXSTATE::head</a>, <a class="el" href="a00338_source.html#l00034">tagINTDDEINFO::hIndirect</a>, <a class="el" href="a03188_source.html#l02145">IsObjectPublic()</a>, <a class="el" href="a03188_source.html#l01831">PopState()</a>, <a class="el" href="a00365_source.html#l01140">_THROBJHEAD::pti</a>, <a class="el" href="a00371_source.html#l00028">RIP_ERROR</a>, <a class="el" href="a00371_source.html#l00131">RIPMSG0</a>, <a class="el" href="a00899_source.html#l04666">tagDDECONV::spartnerConv</a>, <a class="el" href="a00899_source.html#l04667">tagDDECONV::spwnd</a>, <a class="el" href="a00899_source.html#l04668">tagDDECONV::spwndPartner</a>, <a class="el" href="a00899_source.html#l04669">tagDDECONV::spxsOut</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a00338_source.html#l00044">XS_DATA</a>, <a class="el" href="a00338_source.html#l00052">XS_FREEPXS</a>, <a class="el" href="a00338_source.html#l00053">XS_FRELEASE</a>, <a class="el" href="a00338_source.html#l00057">XS_GIVEBACKONNACK</a>, <a class="el" href="a00338_source.html#l00050">XS_LOHANDLE</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a00338_source.html#l00056">XS_PUBLICOBJ</a>, <a class="el" href="a03188_source.html#l00042">xxxAdviseData</a>, <a class="el" href="a03188_source.html#l00043">xxxAdviseDataAck</a>, <a class="el" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn()</a>, <a class="el" href="a03188_source.html#l01931">xxxCopyDdeIn()</a> , 以及 <a class="el" href="a03188_source.html#l00038">xxxUnexpectedServerPost</a>.</p>

</div>
</div>
<a id="a4439e1dd9388cf623d4843e5a5c98ed3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4439e1dd9388cf623d4843e5a5c98ed3">&#9670;&nbsp;</a></span>xxxUnadviseAck()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxUnadviseAck </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l01074">1074</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;{</div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pDdeConv);</div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; </div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;    <span class="keywordflow">if</span> (*pmessage != WM_DDE_ACK) {</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#acb683c4e669b34c6ce535d4d8c77aced">xxxUnexpectedServerPost</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;    }</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;    <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxUnadviseAck&quot;</span>);</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn</a>(pmessage, plParam, pDdeConv) == NULL) {</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a>);</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;    }</div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;    <a class="code" href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a>(pDdeConv);</div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;    <span class="keywordflow">return</span>(<a class="code" href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a>);</div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00338_source.html#l00063">DO_POST</a>, <a class="el" href="a00338_source.html#l00061">FAIL_POST</a>, <a class="el" href="a03188_source.html#l01831">PopState()</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn()</a> , 以及 <a class="el" href="a03188_source.html#l00038">xxxUnexpectedServerPost</a>.</p>

</div>
</div>
<a id="ada550f39305b3dd33cc9d37e5ae807e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada550f39305b3dd33cc9d37e5ae807e7">&#9670;&nbsp;</a></span>xxxUnexpectedClientPost()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxUnexpectedClientPost </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>xxxUnexpectedClientPost </p>
<p>Handles Client DDE messages not anticipated. (ie spontaneous or abnormal)</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00792">792</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;{</div>
<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;    <span class="keywordflow">switch</span> (*pmessage) {</div>
<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    <span class="keywordflow">case</span> WM_DDE_TERMINATE:</div>
<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#a57267a60553520a876e79828b0eefd60">SpontaneousTerminate</a>(pmessage, pDdeConv));</div>
<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160; </div>
<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;    <span class="keywordflow">case</span> WM_DDE_ACK:</div>
<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160; </div>
<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;<span class="comment">         * Could be an extra NACK due to timeout problems, just fake it.</span></div>
<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;        <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxUnexpectedClientPost: dumping ACK data...&quot;</span>);</div>
<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;        <a class="code" href="a03188.html#ae043671c73200068a05ef48e473fcf4e">FreeDDEHandle</a>(pDdeConv, (HANDLE)*plParam, <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a>);</div>
<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160; </div>
<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    <span class="keywordflow">case</span> WM_DDE_DATA:</div>
<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#abda85f162ed62c911cf02b42f53a8a61">AbnormalDDEPost</a>(pDdeConv, *pmessage));</div>
<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160; </div>
<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    <span class="keywordflow">case</span> WM_DDE_ADVISE:</div>
<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#a450368730732abbab032429ae0e4e6ee">xxxAdvise</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160; </div>
<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    <span class="keywordflow">case</span> WM_DDE_UNADVISE:</div>
<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#a77c765954125fe64a79d3da981f5f1c0">Unadvise</a>(pDdeConv));</div>
<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160; </div>
<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;    <span class="keywordflow">case</span> WM_DDE_REQUEST:</div>
<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#ab5889d7ece1920eaa03963b64a7fe918">Request</a>(pDdeConv));</div>
<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160; </div>
<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;    <span class="keywordflow">case</span> WM_DDE_POKE:</div>
<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#a847ea94107d73805f5dd76f7907feaae">xxxPoke</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160; </div>
<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    <span class="keywordflow">case</span> WM_DDE_EXECUTE:</div>
<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#aeccc9c52177ec68756ab2170fe26df4d">xxxExecute</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    }</div>
<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l01587">AbnormalDDEPost()</a>, <a class="el" href="a00338_source.html#l00062">FAKE_POST</a>, <a class="el" href="a03188_source.html#l01775">FreeDDEHandle()</a>, <a class="el" href="a03188_source.html#l01098">Request()</a>, <a class="el" href="a03188_source.html#l01423">SpontaneousTerminate()</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a03188_source.html#l01061">Unadvise()</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a>, <a class="el" href="a03188_source.html#l00040">xxxAdvise</a>, <a class="el" href="a03188_source.html#l00050">xxxExecute</a> , 以及 <a class="el" href="a03188_source.html#l00048">xxxPoke</a>.</p>

</div>
</div>
<a id="a1736aa2a3f42c62672239d6c68de5e49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1736aa2a3f42c62672239d6c68de5e49">&#9670;&nbsp;</a></span>xxxUnexpectedServerPost()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> xxxUnexpectedServerPost </td>
          <td>(</td>
          <td class="paramtype">PDWORD&#160;</td>
          <td class="paramname"><em>pmessage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPLONG&#160;</td>
          <td class="paramname"><em>plParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a>&#160;</td>
          <td class="paramname"><em>pDdeConv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>xxxUnexpectedServerPost </p>
<p>Handles Server DDE messages not anticipated. (ie spontaneous or abnormal)</p>
<p>History: 9-3-91 sanfords Created \ </p>

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00751">751</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;{</div>
<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;    <span class="keywordflow">switch</span> (*pmessage) {</div>
<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    <span class="keywordflow">case</span> WM_DDE_TERMINATE:</div>
<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#a57267a60553520a876e79828b0eefd60">SpontaneousTerminate</a>(pmessage, pDdeConv));</div>
<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160; </div>
<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;    <span class="keywordflow">case</span> WM_DDE_DATA:</div>
<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#a72d57a23cbe0a924d57f9df300ba9882">xxxAdviseData</a>(pmessage, plParam, pDdeConv));</div>
<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160; </div>
<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;    <span class="keywordflow">case</span> WM_DDE_ACK:</div>
<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160; </div>
<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;<span class="comment">         * Could be an extra NACK due to timeout problems, just fake it.</span></div>
<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        <a class="code" href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a>(<span class="stringliteral">&quot;xxxUnexpectedServerPost: dumping ACK data...&quot;</span>);</div>
<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;        <a class="code" href="a03188.html#ae043671c73200068a05ef48e473fcf4e">FreeDDEHandle</a>(pDdeConv, (HANDLE)*plParam, <a class="code" href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a>);</div>
<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a>);</div>
<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160; </div>
<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;    <span class="keywordflow">case</span> WM_DDE_ADVISE:</div>
<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    <span class="keywordflow">case</span> WM_DDE_UNADVISE:</div>
<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;    <span class="keywordflow">case</span> WM_DDE_REQUEST:</div>
<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;    <span class="keywordflow">case</span> WM_DDE_POKE:</div>
<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;    <span class="keywordflow">case</span> WM_DDE_EXECUTE:</div>
<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="a03188.html#abda85f162ed62c911cf02b42f53a8a61">AbnormalDDEPost</a>(pDdeConv, *pmessage));</div>
<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;    }</div>
<div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03188_source.html#l01587">AbnormalDDEPost()</a>, <a class="el" href="a00338_source.html#l00062">FAKE_POST</a>, <a class="el" href="a03188_source.html#l01775">FreeDDEHandle()</a>, <a class="el" href="a03188_source.html#l01423">SpontaneousTerminate()</a>, <a class="el" href="a03188_source.html#l00028">TRACE_DDE</a>, <a class="el" href="a00338_source.html#l00043">XS_PACKED</a> , 以及 <a class="el" href="a03188_source.html#l00042">xxxAdviseData</a>.</p>

</div>
</div>
<h2 class="groupheader">变量说明</h2>
<a id="a72e9e0264b68e38ccf936fb376b17344"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72e9e0264b68e38ccf936fb376b17344">&#9670;&nbsp;</a></span>DupConvTerminate</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> DupConvTerminate</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00053">53</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00157">xxxDDETrackSendHook()</a>.</p>

</div>
</div>
<a id="a7442caa2cd1d84c4de32bc6512a19824"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7442caa2cd1d84c4de32bc6512a19824">&#9670;&nbsp;</a></span>gpPublicObjectList</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a03188.html#ae26fb158e9b14f6f622464adc944244a">PPUBOBJ</a> gpPublicObjectList = NULL</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00026">26</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l02160">AddPublicObject()</a>, <a class="el" href="a03188_source.html#l02145">IsObjectPublic()</a> , 以及 <a class="el" href="a03188_source.html#l02197">RemovePublicObject()</a>.</p>

</div>
</div>
<a id="a450368730732abbab032429ae0e4e6ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a450368730732abbab032429ae0e4e6ee">&#9670;&nbsp;</a></span>xxxAdvise</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxAdvise</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00040">40</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00792">xxxUnexpectedClientPost()</a>.</p>

</div>
</div>
<a id="ae1d3f4b172dac30ae87e7e0531596788"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1d3f4b172dac30ae87e7e0531596788">&#9670;&nbsp;</a></span>xxxAdviseAck</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxAdviseAck</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00041">41</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00838">xxxAdvise()</a>.</p>

</div>
</div>
<a id="a72d57a23cbe0a924d57f9df300ba9882"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72d57a23cbe0a924d57f9df300ba9882">&#9670;&nbsp;</a></span>xxxAdviseData</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxAdviseData</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00042">42</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a> , 以及 <a class="el" href="a03188_source.html#l00751">xxxUnexpectedServerPost()</a>.</p>

</div>
</div>
<a id="a67b24a92e329ae85db344562e7a551db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67b24a92e329ae85db344562e7a551db">&#9670;&nbsp;</a></span>xxxAdviseDataAck</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxAdviseDataAck</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00043">43</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00918">xxxAdviseData()</a> , 以及 <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a>.</p>

</div>
</div>
<a id="aeccc9c52177ec68756ab2170fe26df4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeccc9c52177ec68756ab2170fe26df4d">&#9670;&nbsp;</a></span>xxxExecute</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxExecute</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00050">50</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00792">xxxUnexpectedClientPost()</a>.</p>

</div>
</div>
<a id="a6c48d552239777b3b29ca2191f71faa3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c48d552239777b3b29ca2191f71faa3">&#9670;&nbsp;</a></span>xxxExecuteAck</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxExecuteAck</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00051">51</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01326">xxxExecute()</a>.</p>

</div>
</div>
<a id="a847ea94107d73805f5dd76f7907feaae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a847ea94107d73805f5dd76f7907feaae">&#9670;&nbsp;</a></span>xxxPoke</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxPoke</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00048">48</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00792">xxxUnexpectedClientPost()</a>.</p>

</div>
</div>
<a id="ac2fa39551f202783b275c9849e506b80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2fa39551f202783b275c9849e506b80">&#9670;&nbsp;</a></span>xxxPokeAck</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxPokeAck</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00049">49</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01217">xxxPoke()</a>.</p>

</div>
</div>
<a id="ac75933e505a4fccbfea17fc42cb1cb4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac75933e505a4fccbfea17fc42cb1cb4e">&#9670;&nbsp;</a></span>xxxRequestAck</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxRequestAck</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00047">47</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01098">Request()</a>.</p>

</div>
</div>
<a id="a95b5dde532abadf46cbc559013681bf1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95b5dde532abadf46cbc559013681bf1">&#9670;&nbsp;</a></span>xxxUnadviseAck</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxUnadviseAck</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00045">45</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01061">Unadvise()</a>.</p>

</div>
</div>
<a id="a6006542cc1c1b798a4033b658f8df083"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6006542cc1c1b798a4033b658f8df083">&#9670;&nbsp;</a></span>xxxUnexpectedClientPost</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxUnexpectedClientPost</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00039">39</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l00998">xxxAdviseDataAck()</a> , 以及 <a class="el" href="a03188_source.html#l00324">xxxDDETrackPostHook()</a>.</p>

</div>
</div>
<a id="acb683c4e669b34c6ce535d4d8c77aced"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb683c4e669b34c6ce535d4d8c77aced">&#9670;&nbsp;</a></span>xxxUnexpectedServerPost</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00899.html#a2b74102193e9f29243574c2a2fd448bb">FNDDERESPONSE</a> xxxUnexpectedServerPost</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a03188_source.html">kernel/ddetrack.c</a> 第 <a class="el" href="a03188_source.html#l00038">38</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03188_source.html#l01459">DupConvTerminate()</a>, <a class="el" href="a03188_source.html#l00870">xxxAdviseAck()</a>, <a class="el" href="a03188_source.html#l00324">xxxDDETrackPostHook()</a>, <a class="el" href="a03188_source.html#l01375">xxxExecuteAck()</a>, <a class="el" href="a03188_source.html#l01280">xxxPokeAck()</a>, <a class="el" href="a03188_source.html#l01111">xxxRequestAck()</a> , 以及 <a class="el" href="a03188_source.html#l01074">xxxUnadviseAck()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aa03188_html_a48dcaddd811e14502e594b925f8425c2"><div class="ttname"><a href="a03188.html#a48dcaddd811e14502e594b925f8425c2">FreeListAdd</a></div><div class="ttdeci">BOOL FreeListAdd(PDDECONV pDdeConv, HANDLE hClient, DWORD flags)</div><div class="ttdoc">FreeListAdd</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01746">kernel/ddetrack.c:1746</a></div></div>
<div class="ttc" id="aa03188_html_a57267a60553520a876e79828b0eefd60"><div class="ttname"><a href="a03188.html#a57267a60553520a876e79828b0eefd60">SpontaneousTerminate</a></div><div class="ttdeci">DWORD SpontaneousTerminate(PDWORD pmessage, PDDECONV pDdeConv)</div><div class="ttdoc">TERMINATE TRANSACTION PROCESSING * \</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01423">kernel/ddetrack.c:1423</a></div></div>
<div class="ttc" id="aa00371_html_a01c4659626880ba56745765a3580a36b"><div class="ttname"><a href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a></div><div class="ttdeci">#define RIPMSG0(flags, szFmt)</div><div class="ttdef"><b>Definition:</b> <a href="a00371_source.html#l00131">winerrp.h:131</a></div></div>
<div class="ttc" id="aa02045_html_a4359f4e167c2cc6ed3d3df8adce22348"><div class="ttname"><a href="a02045.html#a4359f4e167c2cc6ed3d3df8adce22348">tagINTDDEINFO::hDirect</a></div><div class="ttdeci">HANDLE hDirect</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00031">ddetrack.h:31</a></div></div>
<div class="ttc" id="aa03188_html_ae043671c73200068a05ef48e473fcf4e"><div class="ttname"><a href="a03188.html#ae043671c73200068a05ef48e473fcf4e">FreeDDEHandle</a></div><div class="ttdeci">VOID FreeDDEHandle(PDDECONV pDdeConv, HANDLE hClient, DWORD flags)</div><div class="ttdoc">FreeDDEHandle</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01775">kernel/ddetrack.c:1775</a></div></div>
<div class="ttc" id="aa03188_html_a72d57a23cbe0a924d57f9df300ba9882"><div class="ttname"><a href="a03188.html#a72d57a23cbe0a924d57f9df300ba9882">xxxAdviseData</a></div><div class="ttdeci">FNDDERESPONSE xxxAdviseData</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00042">kernel/ddetrack.c:42</a></div></div>
<div class="ttc" id="aa03188_html_af404d275bfc5fe7e3d047b3fa3366ccf"><div class="ttname"><a href="a03188.html#af404d275bfc5fe7e3d047b3fa3366ccf">FreeDdeXact</a></div><div class="ttdeci">VOID FreeDdeXact(PXSTATE pxs)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l02100">kernel/ddetrack.c:2100</a></div></div>
<div class="ttc" id="aa03188_html_ad9866dc880fb184dc8046ddbc41ce0c4"><div class="ttname"><a href="a03188.html#ad9866dc880fb184dc8046ddbc41ce0c4">NewConversation</a></div><div class="ttdeci">BOOL NewConversation(PDDECONV *ppdcNewClient, PDDECONV *ppdcNewServer, PWND pwndClient, PWND pwndServer)</div><div class="ttdoc">NewConversation</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01624">kernel/ddetrack.c:1624</a></div></div>
<div class="ttc" id="aa02993_html_a68937d60a6f49b7a8431db62b38ea721"><div class="ttname"><a href="a02993.html#a68937d60a6f49b7a8431db62b38ea721">tagDDECONV::spwnd</a></div><div class="ttdeci">struct tagWND * spwnd</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04667">userk.h:4667</a></div></div>
<div class="ttc" id="aa03188_html_a77c765954125fe64a79d3da981f5f1c0"><div class="ttname"><a href="a03188.html#a77c765954125fe64a79d3da981f5f1c0">Unadvise</a></div><div class="ttdeci">DWORD Unadvise(PDDECONV pDdeConv)</div><div class="ttdoc">UNADVISE TRANSACTION PROCESSING * \</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01061">kernel/ddetrack.c:1061</a></div></div>
<div class="ttc" id="aa00338_html_a0c63f2942d3dd52ed9d738ef9a2df7f9"><div class="ttname"><a href="a00338.html#a0c63f2942d3dd52ed9d738ef9a2df7f9">XS_LOHANDLE</a></div><div class="ttdeci">#define XS_LOHANDLE</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00050">ddetrack.h:50</a></div></div>
<div class="ttc" id="aa03188_html_abda85f162ed62c911cf02b42f53a8a61"><div class="ttname"><a href="a03188.html#abda85f162ed62c911cf02b42f53a8a61">AbnormalDDEPost</a></div><div class="ttdeci">DWORD AbnormalDDEPost(PDDECONV pDdeConv, DWORD message)</div><div class="ttdoc">AbnormalDDEPost</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01587">kernel/ddetrack.c:1587</a></div></div>
<div class="ttc" id="aa02993_html_a85fc1d2fed0e37235a43ddf1cf7270c7"><div class="ttname"><a href="a02993.html#a85fc1d2fed0e37235a43ddf1cf7270c7">tagDDECONV::spartnerConv</a></div><div class="ttdeci">struct tagDDECONV * spartnerConv</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04666">userk.h:4666</a></div></div>
<div class="ttc" id="aa00899_html_a6ffe8ade91d65cba93526ed1596e417f"><div class="ttname"><a href="a00899.html#a6ffe8ade91d65cba93526ed1596e417f">InternalSetProp</a></div><div class="ttdeci">BOOL InternalSetProp(PWND pwnd, LPWSTR pszKey, HANDLE hData, DWORD dwFlags)</div><div class="ttdef"><b>Definition:</b> <a href="a03731_source.html#l00039">kernel/winprop.c:39</a></div></div>
<div class="ttc" id="aa02993_html_ae9156c7bff04b6486833a17b295a3625"><div class="ttname"><a href="a02993.html#ae9156c7bff04b6486833a17b295a3625">tagDDECONV::pfl</a></div><div class="ttdeci">struct tagFREELIST * pfl</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04671">userk.h:4671</a></div></div>
<div class="ttc" id="aa02553_html"><div class="ttname"><a href="a02553.html">_HANDLEENTRY</a></div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01165">user.h:1165</a></div></div>
<div class="ttc" id="aa03188_html_ab6a08dfb79864dd1fdd6e00cf938427b"><div class="ttname"><a href="a03188.html#ab6a08dfb79864dd1fdd6e00cf938427b">AddConvProp</a></div><div class="ttdeci">BOOL AddConvProp(PWND pwndUs, PWND pwndThem, DWORD flags, PDDECONV pdcNew, PDDECONV pdcPartner)</div><div class="ttdoc">AddConvProp</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00227">kernel/ddetrack.c:227</a></div></div>
<div class="ttc" id="aa03257_html_a540cc2a0d9039829fe0159c21d957c44"><div class="ttname"><a href="a03257.html#a540cc2a0d9039829fe0159c21d957c44">gqosDefault</a></div><div class="ttdeci">SECURITY_QUALITY_OF_SERVICE gqosDefault</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00160">kernel/globals.c:160</a></div></div>
<div class="ttc" id="aa00650_html_aff3f50b4985cd6ad250da7ca84148cd4"><div class="ttname"><a href="a00650.html#aff3f50b4985cd6ad250da7ca84148cd4">xxxMessageEvent</a></div><div class="ttdeci">VOID xxxMessageEvent(PWND pwndTo, UINT message, DWORD wParam, LONG lParam, DWORD flag, PDDEML_MSG_HOOK_DATA pdmhd)</div><div class="ttdef"><b>Definition:</b> <a href="a00677_source.html#l00250">event.c:250</a></div></div>
<div class="ttc" id="aa02989_html_ae7891216bb177b3f795ab55b2a78e1cc"><div class="ttname"><a href="a02989.html#ae7891216bb177b3f795ab55b2a78e1cc">tagDDEIMP::cRefInit</a></div><div class="ttdeci">short cRefInit</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04659">userk.h:4659</a></div></div>
<div class="ttc" id="aa00338_html_a48bce163d1cf0a66b1115a57d7785628"><div class="ttname"><a href="a00338.html#a48bce163d1cf0a66b1115a57d7785628">XS_PACKED</a></div><div class="ttdeci">#define XS_PACKED</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00043">ddetrack.h:43</a></div></div>
<div class="ttc" id="aa03188_html_a530b8e85574125ff505690b1f386eed6"><div class="ttname"><a href="a03188.html#a530b8e85574125ff505690b1f386eed6">ClientGetDDEFlags</a></div><div class="ttdeci">DWORD ClientGetDDEFlags(HANDLE hClient, DWORD flags)</div></div>
<div class="ttc" id="aa02993_html_a536bf42b5811dbbdbf6f5cd81ad54849"><div class="ttname"><a href="a02993.html#a536bf42b5811dbbdbf6f5cd81ad54849">tagDDECONV::spwndPartner</a></div><div class="ttdeci">struct tagWND * spwndPartner</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04668">userk.h:4668</a></div></div>
<div class="ttc" id="aa03188_html_ae33e8110e0717dee8fd7a785fe9e24b3"><div class="ttname"><a href="a03188.html#ae33e8110e0717dee8fd7a785fe9e24b3">TRACE_DDE1</a></div><div class="ttdeci">#define TRACE_DDE1(s, a)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00029">kernel/ddetrack.c:29</a></div></div>
<div class="ttc" id="aa03188_html_acb683c4e669b34c6ce535d4d8c77aced"><div class="ttname"><a href="a03188.html#acb683c4e669b34c6ce535d4d8c77aced">xxxUnexpectedServerPost</a></div><div class="ttdeci">FNDDERESPONSE xxxUnexpectedServerPost</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00038">kernel/ddetrack.c:38</a></div></div>
<div class="ttc" id="aa00338_html_ad14ea0aadf6e104762e56ef12b056e49"><div class="ttname"><a href="a00338.html#ad14ea0aadf6e104762e56ef12b056e49">XS_DATA</a></div><div class="ttdeci">#define XS_DATA</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00044">ddetrack.h:44</a></div></div>
<div class="ttc" id="aa00338_html_a146caa6f3761f9e3139445e6461833f1"><div class="ttname"><a href="a00338.html#a146caa6f3761f9e3139445e6461833f1">XS_HIHANDLE</a></div><div class="ttdeci">#define XS_HIHANDLE</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00051">ddetrack.h:51</a></div></div>
<div class="ttc" id="aa00371_html_ad6b24a3d61abdc148c8751b5c5add686"><div class="ttname"><a href="a00371.html#ad6b24a3d61abdc148c8751b5c5add686">RIP_VERBOSE</a></div><div class="ttdeci">#define RIP_VERBOSE</div><div class="ttdef"><b>Definition:</b> <a href="a00371_source.html#l00030">winerrp.h:30</a></div></div>
<div class="ttc" id="aa02045_html_a29bb851466268efcf57e7e81e2d0ab09"><div class="ttname"><a href="a02045.html#a29bb851466268efcf57e7e81e2d0ab09">tagINTDDEINFO::flags</a></div><div class="ttdeci">DWORD flags</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00030">ddetrack.h:30</a></div></div>
<div class="ttc" id="aa00899_html_a86fcd7df916502da314369c9c45f4766"><div class="ttname"><a href="a00899.html#a86fcd7df916502da314369c9c45f4766">PDDEIMP</a></div><div class="ttdeci">struct tagDDEIMP * PDDEIMP</div></div>
<div class="ttc" id="aa00695_html_aa3a7eff0cc4eabef6217efe2eba1e47f"><div class="ttname"><a href="a00695.html#aa3a7eff0cc4eabef6217efe2eba1e47f">HMMarkObjectDestroy</a></div><div class="ttdeci">BOOL HMMarkObjectDestroy(PVOID pobj)</div><div class="ttdef"><b>Definition:</b> <a href="a00695_source.html#l00757">handtabl.c:757</a></div></div>
<div class="ttc" id="aa00695_html_a857d137de0592e36caec4b6e0f5021cb"><div class="ttname"><a href="a00695.html#a857d137de0592e36caec4b6e0f5021cb">HMAllocObject</a></div><div class="ttdeci">PVOID HMAllocObject(PTHREADINFO ptiOwner, PDESKTOP pdeskSrc, BYTE bType, DWORD size)</div><div class="ttdef"><b>Definition:</b> <a href="a00695_source.html#l00314">handtabl.c:314</a></div></div>
<div class="ttc" id="aa03188_html_a72e9e0264b68e38ccf936fb376b17344"><div class="ttname"><a href="a03188.html#a72e9e0264b68e38ccf936fb376b17344">DupConvTerminate</a></div><div class="ttdeci">FNDDERESPONSE DupConvTerminate</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00053">kernel/ddetrack.c:53</a></div></div>
<div class="ttc" id="aa03188_html_aeccc9c52177ec68756ab2170fe26df4d"><div class="ttname"><a href="a03188.html#aeccc9c52177ec68756ab2170fe26df4d">xxxExecute</a></div><div class="ttdeci">FNDDERESPONSE xxxExecute</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00050">kernel/ddetrack.c:50</a></div></div>
<div class="ttc" id="aa03257_html_ab302ed5096d732e53f944c97b8321ba0"><div class="ttname"><a href="a03257.html#ab302ed5096d732e53f944c97b8321ba0">giheLast</a></div><div class="ttdeci">DWORD giheLast</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00065">kernel/globals.c:65</a></div></div>
<div class="ttc" id="aa03188_html_a0a679197aeac8435118b7d0bbc6fe629"><div class="ttname"><a href="a03188.html#a0a679197aeac8435118b7d0bbc6fe629">AnticipatePost</a></div><div class="ttdeci">HANDLE AnticipatePost(PDDECONV pDdeConv, FNDDERESPONSE fnResponse, HANDLE hClient, HANDLE hServer, PINTDDEINFO pIntDdeInfo, DWORD flags)</div><div class="ttdoc">HELPER ROUTINES FOR TRANSACTION TRACKING * \</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01492">kernel/ddetrack.c:1492</a></div></div>
<div class="ttc" id="aa02997_html_a89bbd7240a39acee22034e3eeeb020f6"><div class="ttname"><a href="a02997.html#a89bbd7240a39acee22034e3eeeb020f6">tagXSTATE::snext</a></div><div class="ttdeci">struct tagXSTATE * snext</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04681">userk.h:4681</a></div></div>
<div class="ttc" id="aa02045_html_a11601f3a72ffd8829e8dc1525fc27d8c"><div class="ttname"><a href="a02045.html#a11601f3a72ffd8829e8dc1525fc27d8c">tagINTDDEINFO::cbDirect</a></div><div class="ttdeci">int cbDirect</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00033">ddetrack.h:33</a></div></div>
<div class="ttc" id="aa03188_html_a43930b8020a18f624b36503842b0454d"><div class="ttname"><a href="a03188.html#a43930b8020a18f624b36503842b0454d">FreeDdeConv</a></div><div class="ttdeci">VOID FreeDdeConv(PDDECONV pDdeConv)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01872">kernel/ddetrack.c:1872</a></div></div>
<div class="ttc" id="aa02985_html_a29bb851466268efcf57e7e81e2d0ab09"><div class="ttname"><a href="a02985.html#a29bb851466268efcf57e7e81e2d0ab09">tagFREELIST::flags</a></div><div class="ttdeci">DWORD flags</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04653">userk.h:4653</a></div></div>
<div class="ttc" id="aa02705_html_a0f2e0011aa3551157b6949798bf93098"><div class="ttname"><a href="a02705.html#a0f2e0011aa3551157b6949798bf93098">tagPUBOBJ::hObj</a></div><div class="ttdeci">HANDLE hObj</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00019">kernel/ddetrack.c:19</a></div></div>
<div class="ttc" id="aa03188_html_adaafd7af5ff85c82b8c72430bc4026fa"><div class="ttname"><a href="a03188.html#adaafd7af5ff85c82b8c72430bc4026fa">xxxFreeListFree</a></div><div class="ttdeci">VOID xxxFreeListFree(PFREELIST pfl)</div><div class="ttdoc">xxxFreeListFree</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01799">kernel/ddetrack.c:1799</a></div></div>
<div class="ttc" id="aa00338_html_a80475b6dfa016b055a2db28e2a8ec467"><div class="ttname"><a href="a00338.html#a80475b6dfa016b055a2db28e2a8ec467">DO_POST</a></div><div class="ttdeci">#define DO_POST</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00063">ddetrack.h:63</a></div></div>
<div class="ttc" id="aa03188_html_a9173e7bc878e95973b1571155d7c472a"><div class="ttname"><a href="a03188.html#a9173e7bc878e95973b1571155d7c472a">GiveObject</a></div><div class="ttdeci">BOOL GiveObject(UINT format, HANDLE hObj, W32PID pid)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l02239">kernel/ddetrack.c:2239</a></div></div>
<div class="ttc" id="aa00899_html_a58c59789328731021e048007fc0c904c"><div class="ttname"><a href="a00899.html#a58c59789328731021e048007fc0c904c">PFREELIST</a></div><div class="ttdeci">struct tagFREELIST * PFREELIST</div></div>
<div class="ttc" id="aa03188_html_a21fcc0ef5412430c80187d4b6adcdccc"><div class="ttname"><a href="a03188.html#a21fcc0ef5412430c80187d4b6adcdccc">ValidatePublicObjectList</a></div><div class="ttdeci">#define ValidatePublicObjectList()</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00088">kernel/ddetrack.c:88</a></div></div>
<div class="ttc" id="aa00371_html_a162a73e20dfabca084a3ebb4581631a8"><div class="ttname"><a href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a></div><div class="ttdeci">#define UserAssert(exp)</div><div class="ttdef"><b>Definition:</b> <a href="a00950_source.html#l00117">usersrv.h:117</a></div></div>
<div class="ttc" id="aa00371_html_afa5f32de88404289ec03cd2c0e61e94f"><div class="ttname"><a href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a></div><div class="ttdeci">#define RIP_ERROR</div><div class="ttdef"><b>Definition:</b> <a href="a00371_source.html#l00028">winerrp.h:28</a></div></div>
<div class="ttc" id="aa02993_html_a25b948ee008e305bdebef4c13d63a9dd"><div class="ttname"><a href="a02993.html#a25b948ee008e305bdebef4c13d63a9dd">tagDDECONV::snext</a></div><div class="ttdeci">struct tagDDECONV * snext</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04665">userk.h:4665</a></div></div>
<div class="ttc" id="aa02537_html"><div class="ttname"><a href="a02537.html">_HEAD</a></div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01127">user.h:1127</a></div></div>
<div class="ttc" id="aa02997_html_a6be2d067ba15d4ec8cfc2e87922094f5"><div class="ttname"><a href="a02997.html#a6be2d067ba15d4ec8cfc2e87922094f5">tagXSTATE::head</a></div><div class="ttdeci">THROBJHEAD head</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04680">userk.h:4680</a></div></div>
<div class="ttc" id="aa00695_html_a4e6ee8871cf6323bdd048608605667b1"><div class="ttname"><a href="a00695.html#a4e6ee8871cf6323bdd048608605667b1">HMFreeObject</a></div><div class="ttdeci">BOOL HMFreeObject(PVOID pobj)</div><div class="ttdef"><b>Definition:</b> <a href="a00695_source.html#l00575">handtabl.c:575</a></div></div>
<div class="ttc" id="aa00257_html_a8315d2c807ba18ba9e528c40614b6173"><div class="ttname"><a href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a></div><div class="ttdeci">PTHREADINFO PtiCurrent(VOID)</div><div class="ttdef"><b>Definition:</b> <a href="a00263_source.html#l00526">winmgrc.c:526</a></div></div>
<div class="ttc" id="aa03188_html_ae1d3f4b172dac30ae87e7e0531596788"><div class="ttname"><a href="a03188.html#ae1d3f4b172dac30ae87e7e0531596788">xxxAdviseAck</a></div><div class="ttdeci">FNDDERESPONSE xxxAdviseAck</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00041">kernel/ddetrack.c:41</a></div></div>
<div class="ttc" id="aa00338_html_a345eb88b1c293dc4c9445d8eaca6accc"><div class="ttname"><a href="a00338.html#a345eb88b1c293dc4c9445d8eaca6accc">XS_EXECUTE</a></div><div class="ttdeci">#define XS_EXECUTE</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00054">ddetrack.h:54</a></div></div>
<div class="ttc" id="aa00338_html_ab6b030d454ca012e42ab1be328dd14a2"><div class="ttname"><a href="a00338.html#ab6b030d454ca012e42ab1be328dd14a2">FAKE_POST</a></div><div class="ttdeci">#define FAKE_POST</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00062">ddetrack.h:62</a></div></div>
<div class="ttc" id="aa00899_html_a73e7ed09abae70f4890c9be9bc70ca95"><div class="ttname"><a href="a00899.html#a73e7ed09abae70f4890c9be9bc70ca95">HMLockObject</a></div><div class="ttdeci">VOID HMLockObject(PVOID pobj)</div></div>
<div class="ttc" id="aa02045_html"><div class="ttname"><a href="a02045.html">tagINTDDEINFO</a></div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00028">ddetrack.h:28</a></div></div>
<div class="ttc" id="aa00650_html_aeedf4ff87347e042a697331c6ca6b469"><div class="ttname"><a href="a00650.html#aeedf4ff87347e042a697331c6ca6b469">MonitorFlags</a></div><div class="ttdeci">DWORD MonitorFlags</div><div class="ttdef"><b>Definition:</b> <a href="a00677_source.html#l00017">event.c:17</a></div></div>
<div class="ttc" id="aa00338_html_a003ed03583fa5b5c3bbdcdd6d3754c53"><div class="ttname"><a href="a00338.html#a003ed03583fa5b5c3bbdcdd6d3754c53">XS_DUMPMSG</a></div><div class="ttdeci">#define XS_DUMPMSG</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00058">ddetrack.h:58</a></div></div>
<div class="ttc" id="aa00371_html_ae61d954062a9ece52e350e54cad9a23d"><div class="ttname"><a href="a00371.html#ae61d954062a9ece52e350e54cad9a23d">RIPERR0</a></div><div class="ttdeci">#define RIPERR0(idErr, flags, szFmt)</div><div class="ttdef"><b>Definition:</b> <a href="a00371_source.html#l00119">winerrp.h:119</a></div></div>
<div class="ttc" id="aa00257_html_a933a4a4818762a03428fe021dd9772a4"><div class="ttname"><a href="a00257.html#a933a4a4818762a03428fe021dd9772a4">_PostMessage</a></div><div class="ttdeci">BOOL _PostMessage(HWND hwnd, UINT msg, DWORD wParam, LONG lParam, BOOL bAnsi)</div></div>
<div class="ttc" id="aa02997_html_a2a67c5458463585258b56b4ed6919bed"><div class="ttname"><a href="a02997.html#a2a67c5458463585258b56b4ed6919bed">tagXSTATE::fnResponse</a></div><div class="ttdeci">PFNDDERESPONSE fnResponse</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04682">userk.h:4682</a></div></div>
<div class="ttc" id="aa02581_html_a6be2d067ba15d4ec8cfc2e87922094f5"><div class="ttname"><a href="a02581.html#a6be2d067ba15d4ec8cfc2e87922094f5">tagWND::head</a></div><div class="ttdeci">THROBJHEAD head</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01389">user.h:1389</a></div></div>
<div class="ttc" id="aa02045_html_aee65ff48ba47da1c554b459e114b7c81"><div class="ttname"><a href="a02045.html#aee65ff48ba47da1c554b459e114b7c81">tagINTDDEINFO::DdePack</a></div><div class="ttdeci">DDEPACK DdePack</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00029">ddetrack.h:29</a></div></div>
<div class="ttc" id="aa02989_html_aab7929442757d5c0fd69fdffbee847ac"><div class="ttname"><a href="a02989.html#aab7929442757d5c0fd69fdffbee847ac">tagDDEIMP::qos</a></div><div class="ttdeci">SECURITY_QUALITY_OF_SERVICE qos</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04657">userk.h:4657</a></div></div>
<div class="ttc" id="aa00020_html_ac02f0141c423acd033ecdd2a757a3cc1"><div class="ttname"><a href="a00020.html#ac02f0141c423acd033ecdd2a757a3cc1">gSharedInfo</a></div><div class="ttdeci">SHAREDINFO gSharedInfo</div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00040">clglobal.c:40</a></div></div>
<div class="ttc" id="aa03188_html_a30127ac83fc0e41ffc19694a5d8baba1"><div class="ttname"><a href="a03188.html#a30127ac83fc0e41ffc19694a5d8baba1">TRACE_DDE2</a></div><div class="ttdeci">#define TRACE_DDE2(s, a, b)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00030">kernel/ddetrack.c:30</a></div></div>
<div class="ttc" id="aa00899_html_ac307716e78f28389086bd8b889d4331c"><div class="ttname"><a href="a00899.html#ac307716e78f28389086bd8b889d4331c">InternalRemoveProp</a></div><div class="ttdeci">HANDLE InternalRemoveProp(PWND pwnd, LPWSTR pszKey, BOOL fInternal)</div><div class="ttdef"><b>Definition:</b> <a href="a03731_source.html#l00098">kernel/winprop.c:98</a></div></div>
<div class="ttc" id="aa02993_html_a16207ebade1a142760211395d7dcc0cb"><div class="ttname"><a href="a02993.html#a16207ebade1a142760211395d7dcc0cb">tagDDECONV::spxsOut</a></div><div class="ttdeci">struct tagXSTATE * spxsOut</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04669">userk.h:4669</a></div></div>
<div class="ttc" id="aa02705_html_ad43c3812e6d13e0518d9f8b8f463ffcf"><div class="ttname"><a href="a02705.html#ad43c3812e6d13e0518d9f8b8f463ffcf">tagPUBOBJ::count</a></div><div class="ttdeci">int count</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00020">kernel/ddetrack.c:20</a></div></div>
<div class="ttc" id="aa02989_html_abba13e3637259d948ca78feca1b7eab4"><div class="ttname"><a href="a02989.html#abba13e3637259d948ca78feca1b7eab4">tagDDEIMP::cRefConv</a></div><div class="ttdeci">short cRefConv</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04660">userk.h:4660</a></div></div>
<div class="ttc" id="aa02985_html_a0182b2e472b8af2291079784ca8926c9"><div class="ttname"><a href="a02985.html#a0182b2e472b8af2291079784ca8926c9">tagFREELIST::h</a></div><div class="ttdeci">HANDLE h</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04652">userk.h:4652</a></div></div>
<div class="ttc" id="aa00563_html_a074685e97e89d6aa2accdfcb82328699"><div class="ttname"><a href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a></div><div class="ttdeci">ddeml v[i&lt; inst &gt;][t&lt; type &gt;][hObj|pObj] Dump DDEML state information ddeml lists all ddeml instances for this process n ddeml t&lt; type &gt; lists all ddeml objects of the given type n n assumes link is first DWORD</div><div class="ttdef"><b>Definition:</b> <a href="a00563_source.html#l00175">exts.h:175</a></div></div>
<div class="ttc" id="aa03188_html_a3d51f7beeb110632d20c93fa1f730741"><div class="ttname"><a href="a03188.html#a3d51f7beeb110632d20c93fa1f730741">xxxCopyDdeIn</a></div><div class="ttdeci">PINTDDEINFO xxxCopyDdeIn(HANDLE hSrc, PDWORD pflags, PHANDLE phDirect, PDDECONV pDdeConv)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01931">kernel/ddetrack.c:1931</a></div></div>
<div class="ttc" id="aa01881_html"><div class="ttname"><a href="a01881.html">_TL</a></div><div class="ttdef"><b>Definition:</b> <a href="a00257_source.html#l00347">usercli.h:347</a></div></div>
<div class="ttc" id="aa00338_html_a0e02bb78a0e29d73b074fca51b332c2b"><div class="ttname"><a href="a00338.html#a0e02bb78a0e29d73b074fca51b332c2b">PDDE_DATA</a></div><div class="ttdeci">struct tagDDE_DATA * PDDE_DATA</div></div>
<div class="ttc" id="aa00650_html_a3c555be42b2fb6bd81d5d7c128b96626"><div class="ttname"><a href="a00650.html#a3c555be42b2fb6bd81d5d7c128b96626">ClientGetDDEHookData</a></div><div class="ttdeci">DWORD ClientGetDDEHookData(UINT message, LONG lParam, PDDEML_MSG_HOOK_DATA pdmhd)</div></div>
<div class="ttc" id="aa02993_html_a6be2d067ba15d4ec8cfc2e87922094f5"><div class="ttname"><a href="a02993.html#a6be2d067ba15d4ec8cfc2e87922094f5">tagDDECONV::head</a></div><div class="ttdeci">THROBJHEAD head</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04664">userk.h:4664</a></div></div>
<div class="ttc" id="aa00899_html_a09d9cafd979621da88a3ce0f1df3bd45"><div class="ttname"><a href="a00899.html#a09d9cafd979621da88a3ce0f1df3bd45">PDDECONV</a></div><div class="ttdeci">struct tagDDECONV * PDDECONV</div></div>
<div class="ttc" id="aa03188_html_a7b8bd248d8d95a45774942f67436d466"><div class="ttname"><a href="a03188.html#a7b8bd248d8d95a45774942f67436d466">RemovePublicObject</a></div><div class="ttdeci">BOOL RemovePublicObject(UINT format, HANDLE hObj)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l02197">kernel/ddetrack.c:2197</a></div></div>
<div class="ttc" id="aa02581_html"><div class="ttname"><a href="a02581.html">tagWND</a></div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01388">user.h:1388</a></div></div>
<div class="ttc" id="aa00338_html_ac456ade356a031bff5f41d5881a504b1"><div class="ttname"><a href="a00338.html#ac456ade356a031bff5f41d5881a504b1">FAIL_POST</a></div><div class="ttdeci">#define FAIL_POST</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00061">ddetrack.h:61</a></div></div>
<div class="ttc" id="aa03188_html_a9c2c31cc2fbb7833978ec0fee18ebb4e"><div class="ttname"><a href="a03188.html#a9c2c31cc2fbb7833978ec0fee18ebb4e">xxxClientCopyDDEOut1</a></div><div class="ttdeci">HANDLE xxxClientCopyDDEOut1(PINTDDEINFO pIntDdeInfo)</div></div>
<div class="ttc" id="aa02705_html"><div class="ttname"><a href="a02705.html">tagPUBOBJ</a></div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00017">kernel/ddetrack.c:17</a></div></div>
<div class="ttc" id="aa03188_html_a4c49e6f19d941a1747493eaf7131eaeb"><div class="ttname"><a href="a03188.html#a4c49e6f19d941a1747493eaf7131eaeb">UnlinkConv</a></div><div class="ttdeci">PDDECONV UnlinkConv(PDDECONV pDdeConv)</div><div class="ttdoc">UnlinkConv</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00268">kernel/ddetrack.c:268</a></div></div>
<div class="ttc" id="aa02997_html_a29bb851466268efcf57e7e81e2d0ab09"><div class="ttname"><a href="a02997.html#a29bb851466268efcf57e7e81e2d0ab09">tagXSTATE::flags</a></div><div class="ttdeci">DWORD flags</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04686">userk.h:4686</a></div></div>
<div class="ttc" id="aa00371_html_a41f433389f20db57f042022a662e96de"><div class="ttname"><a href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a></div><div class="ttdeci">#define RIP_WARNING</div><div class="ttdef"><b>Definition:</b> <a href="a00371_source.html#l00029">winerrp.h:29</a></div></div>
<div class="ttc" id="aa00338_html_a8fed429a04625ed6d2f54db690b51264"><div class="ttname"><a href="a00338.html#a8fed429a04625ed6d2f54db690b51264">XS_FREESRC</a></div><div class="ttdeci">#define XS_FREESRC</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00055">ddetrack.h:55</a></div></div>
<div class="ttc" id="aa03188_html_a67b24a92e329ae85db344562e7a551db"><div class="ttname"><a href="a03188.html#a67b24a92e329ae85db344562e7a551db">xxxAdviseDataAck</a></div><div class="ttdeci">FNDDERESPONSE xxxAdviseDataAck</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00043">kernel/ddetrack.c:43</a></div></div>
<div class="ttc" id="aa03188_html_a6c48d552239777b3b29ca2191f71faa3"><div class="ttname"><a href="a03188.html#a6c48d552239777b3b29ca2191f71faa3">xxxExecuteAck</a></div><div class="ttdeci">FNDDERESPONSE xxxExecuteAck</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00051">kernel/ddetrack.c:51</a></div></div>
<div class="ttc" id="aa03188_html_ac5d06f431a0748b08a7b4e89b24ceafa"><div class="ttname"><a href="a03188.html#ac5d06f431a0748b08a7b4e89b24ceafa">TRACE_DDE</a></div><div class="ttdeci">#define TRACE_DDE(str)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00028">kernel/ddetrack.c:28</a></div></div>
<div class="ttc" id="aa03188_html_adbc63426f91636c2045e62267284e0d2"><div class="ttname"><a href="a03188.html#adbc63426f91636c2045e62267284e0d2">IsObjectPublic</a></div><div class="ttdeci">PPUBOBJ IsObjectPublic(HANDLE hObj)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l02145">kernel/ddetrack.c:2145</a></div></div>
<div class="ttc" id="aa03188_html_a9e31e0ef775eeb44f4a0300ebf631a8e"><div class="ttname"><a href="a03188.html#a9e31e0ef775eeb44f4a0300ebf631a8e">AddPublicObject</a></div><div class="ttdeci">BOOL AddPublicObject(UINT format, HANDLE hObj, W32PID pid)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l02160">kernel/ddetrack.c:2160</a></div></div>
<div class="ttc" id="aa00338_html_aeffc0583e2a518c6119cc20bd4f7789d"><div class="ttname"><a href="a00338.html#aeffc0583e2a518c6119cc20bd4f7789d">XS_FRELEASE</a></div><div class="ttdeci">#define XS_FRELEASE</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00053">ddetrack.h:53</a></div></div>
<div class="ttc" id="aa00338_html_a7a5e9b7bba7b9146c0a43d2315e85396"><div class="ttname"><a href="a00338.html#a7a5e9b7bba7b9146c0a43d2315e85396">XS_METAFILEPICT</a></div><div class="ttdeci">#define XS_METAFILEPICT</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00045">ddetrack.h:45</a></div></div>
<div class="ttc" id="aa00338_html_ad979b2a8ec4f0c8c9fe60ee464a32ea3"><div class="ttname"><a href="a00338.html#ad979b2a8ec4f0c8c9fe60ee464a32ea3">XS_ENHMETAFILE</a></div><div class="ttdeci">#define XS_ENHMETAFILE</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00048">ddetrack.h:48</a></div></div>
<div class="ttc" id="aa03188_html_a450368730732abbab032429ae0e4e6ee"><div class="ttname"><a href="a03188.html#a450368730732abbab032429ae0e4e6ee">xxxAdvise</a></div><div class="ttdeci">FNDDERESPONSE xxxAdvise</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00040">kernel/ddetrack.c:40</a></div></div>
<div class="ttc" id="aa02993_html_a29bb851466268efcf57e7e81e2d0ab09"><div class="ttname"><a href="a02993.html#a29bb851466268efcf57e7e81e2d0ab09">tagDDECONV::flags</a></div><div class="ttdeci">DWORD flags</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04672">userk.h:4672</a></div></div>
<div class="ttc" id="aa03188_html_a7ae968bf9fe9f887f96d61fca74d654d"><div class="ttname"><a href="a03188.html#a7ae968bf9fe9f887f96d61fca74d654d">xxxClientCopyDDEIn1</a></div><div class="ttdeci">PINTDDEINFO xxxClientCopyDDEIn1(HANDLE hSrc, DWORD flags)</div></div>
<div class="ttc" id="aa03188_html_ac2fa39551f202783b275c9849e506b80"><div class="ttname"><a href="a03188.html#ac2fa39551f202783b275c9849e506b80">xxxPokeAck</a></div><div class="ttdeci">FNDDERESPONSE xxxPokeAck</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00049">kernel/ddetrack.c:49</a></div></div>
<div class="ttc" id="aa03188_html_a847ea94107d73805f5dd76f7907feaae"><div class="ttname"><a href="a03188.html#a847ea94107d73805f5dd76f7907feaae">xxxPoke</a></div><div class="ttdeci">FNDDERESPONSE xxxPoke</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00048">kernel/ddetrack.c:48</a></div></div>
<div class="ttc" id="aa03188_html_ab5889d7ece1920eaa03963b64a7fe918"><div class="ttname"><a href="a03188.html#ab5889d7ece1920eaa03963b64a7fe918">Request</a></div><div class="ttdeci">DWORD Request(PDDECONV pDdeConv)</div><div class="ttdoc">REQUEST TRANSACTION PROCESSING * \</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01098">kernel/ddetrack.c:1098</a></div></div>
<div class="ttc" id="aa00293_html_a41d387d1b2d42169cbaa2092c8a02abf"><div class="ttname"><a href="a00293.html#a41d387d1b2d42169cbaa2092c8a02abf">ValidateHwnd</a></div><div class="ttdeci">#define ValidateHwnd(hwnd)</div><div class="ttdef"><b>Definition:</b> <a href="a00293_source.html#l00090">immcli.h:90</a></div></div>
<div class="ttc" id="aa02993_html_a31b3692a13413782dc2eb1c140c39024"><div class="ttname"><a href="a02993.html#a31b3692a13413782dc2eb1c140c39024">tagDDECONV::spxsIn</a></div><div class="ttdeci">struct tagXSTATE * spxsIn</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04670">userk.h:4670</a></div></div>
<div class="ttc" id="aa03188_html_aa8ea52319ca33f5f02b7813e98b5dc40"><div class="ttname"><a href="a03188.html#aa8ea52319ca33f5f02b7813e98b5dc40">TraceDdeMsg</a></div><div class="ttdeci">#define TraceDdeMsg(m, h1, h2, c)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00089">kernel/ddetrack.c:89</a></div></div>
<div class="ttc" id="aa00365_html_ab993ad57b0d56b4f9b64df02256b611c"><div class="ttname"><a href="a00365.html#ab993ad57b0d56b4f9b64df02256b611c">HMValidateHandleNoRip</a></div><div class="ttdeci">PVOID FASTCALL HMValidateHandleNoRip(HANDLE h, BYTE btype)</div><div class="ttdef"><b>Definition:</b> <a href="a03752_source.html#l00303">rtl/wow.c:303</a></div></div>
<div class="ttc" id="aa03188_html_acc1f6b0b99ae06f21ed9afd412ed58c1"><div class="ttname"><a href="a03188.html#acc1f6b0b99ae06f21ed9afd412ed58c1">FindDdeConv</a></div><div class="ttdeci">PDDECONV FindDdeConv(PWND pwndProp, PWND pwndPartner)</div><div class="ttdoc">FindDdeConv</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01669">kernel/ddetrack.c:1669</a></div></div>
<div class="ttc" id="aa03188_html_a16a8e4670ddce87ec7227d892f7cc103"><div class="ttname"><a href="a03188.html#a16a8e4670ddce87ec7227d892f7cc103">PopState</a></div><div class="ttdeci">VOID PopState(PDDECONV pDdeConv)</div><div class="ttdoc">PopState</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01831">kernel/ddetrack.c:1831</a></div></div>
<div class="ttc" id="aa03188_html_a261211d78079bb6310c320826f6b5614"><div class="ttname"><a href="a03188.html#a261211d78079bb6310c320826f6b5614">ClientFreeDDEHandle</a></div><div class="ttdeci">DWORD ClientFreeDDEHandle(HANDLE hClient, DWORD flags)</div></div>
<div class="ttc" id="aa02997_html"><div class="ttname"><a href="a02997.html">tagXSTATE</a></div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04679">userk.h:4679</a></div></div>
<div class="ttc" id="aa03188_html_a6006542cc1c1b798a4033b658f8df083"><div class="ttname"><a href="a03188.html#a6006542cc1c1b798a4033b658f8df083">xxxUnexpectedClientPost</a></div><div class="ttdeci">FNDDERESPONSE xxxUnexpectedClientPost</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00039">kernel/ddetrack.c:39</a></div></div>
<div class="ttc" id="aa02037_html_aef0d0522c1ffb9d2eb8917cb6991a46a"><div class="ttname"><a href="a02037.html#aef0d0522c1ffb9d2eb8917cb6991a46a">tagDDEPACK::uiHi</a></div><div class="ttdeci">UINT uiHi</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00014">ddetrack.h:14</a></div></div>
<div class="ttc" id="aa03608_html_afd1a0e78d1f88954d93e48ab3821781f"><div class="ttname"><a href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a></div><div class="ttdeci">typedef UINT(FAR WINAPI *MSGSOUNDPROC)()</div></div>
<div class="ttc" id="aa02545_html_a774eeae0f007ae3ea612baf38cd38936"><div class="ttname"><a href="a02545.html#a774eeae0f007ae3ea612baf38cd38936">_THROBJHEAD::pti</a></div><div class="ttdeci">PTHREADINFO pti</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01140">user.h:1140</a></div></div>
<div class="ttc" id="aa03188_html_a7442caa2cd1d84c4de32bc6512a19824"><div class="ttname"><a href="a03188.html#a7442caa2cd1d84c4de32bc6512a19824">gpPublicObjectList</a></div><div class="ttdeci">PPUBOBJ gpPublicObjectList</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00026">kernel/ddetrack.c:26</a></div></div>
<div class="ttc" id="aa02985_html_a353ca85d3247b98440fe7a40d2547731"><div class="ttname"><a href="a02985.html#a353ca85d3247b98440fe7a40d2547731">tagFREELIST::next</a></div><div class="ttdeci">struct tagFREELIST * next</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04651">userk.h:4651</a></div></div>
<div class="ttc" id="aa02997_html_a16a5b9fb812f8c40dde4c427d9487170"><div class="ttname"><a href="a02997.html#a16a5b9fb812f8c40dde4c427d9487170">tagXSTATE::pIntDdeInfo</a></div><div class="ttdeci">PINTDDEINFO pIntDdeInfo</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04685">userk.h:4685</a></div></div>
<div class="ttc" id="aa00365_html_a600525b4b6d1cfd74c99b5484051ce5c"><div class="ttname"><a href="a00365.html#a600525b4b6d1cfd74c99b5484051ce5c">_GetProp</a></div><div class="ttdeci">HANDLE _GetProp(PWND pwnd, LPWSTR pszKey, BOOL fInternal)</div><div class="ttdef"><b>Definition:</b> <a href="a03740_source.html#l00069">rtl/winprop.c:69</a></div></div>
<div class="ttc" id="aa03188_html_a95b5dde532abadf46cbc559013681bf1"><div class="ttname"><a href="a03188.html#a95b5dde532abadf46cbc559013681bf1">xxxUnadviseAck</a></div><div class="ttdeci">FNDDERESPONSE xxxUnadviseAck</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00045">kernel/ddetrack.c:45</a></div></div>
<div class="ttc" id="aa02705_html_aea3bc6c333934fbac2cd9cdea301c49f"><div class="ttname"><a href="a02705.html#aea3bc6c333934fbac2cd9cdea301c49f">tagPUBOBJ::next</a></div><div class="ttdeci">struct tagPUBOBJ * next</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00018">kernel/ddetrack.c:18</a></div></div>
<div class="ttc" id="aa03188_html_a84e8c195994d914d135c5afd6adb1c84"><div class="ttname"><a href="a03188.html#a84e8c195994d914d135c5afd6adb1c84">TRACE_DDE3</a></div><div class="ttdeci">#define TRACE_DDE3(s, a, b, c)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00031">kernel/ddetrack.c:31</a></div></div>
<div class="ttc" id="aa00338_html_af7863f00089bd052c7d22ff7a932d0a4"><div class="ttname"><a href="a00338.html#af7863f00089bd052c7d22ff7a932d0a4">XS_PUBLICOBJ</a></div><div class="ttdeci">#define XS_PUBLICOBJ</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00056">ddetrack.h:56</a></div></div>
<div class="ttc" id="aa00899_html_a70b09c3e2b495630f4205d34be505afb"><div class="ttname"><a href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a></div><div class="ttdeci">VOID CheckLock(PVOID pobj)</div></div>
<div class="ttc" id="aa02989_html_a53f5bbc9e842dcb73f8c8dd6199a564b"><div class="ttname"><a href="a02989.html#a53f5bbc9e842dcb73f8c8dd6199a564b">tagDDEIMP::ClientContext</a></div><div class="ttdeci">SECURITY_CLIENT_CONTEXT ClientContext</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04658">userk.h:4658</a></div></div>
<div class="ttc" id="aa02521_html_aba571224616f70b9a072015bc9873676"><div class="ttname"><a href="a02521.html#aba571224616f70b9a072015bc9873676">tagSHAREDINFO::aheList</a></div><div class="ttdeci">struct _HANDLEENTRY * aheList</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01060">user.h:1060</a></div></div>
<div class="ttc" id="aa00371_html_a906cb0845450a5d5422ce513ecd8a32f"><div class="ttname"><a href="a00371.html#a906cb0845450a5d5422ce513ecd8a32f">RIPMSG2</a></div><div class="ttdeci">#define RIPMSG2(flags, szFmt, p1, p2)</div><div class="ttdef"><b>Definition:</b> <a href="a00371_source.html#l00133">winerrp.h:133</a></div></div>
<div class="ttc" id="aa03188_html_a42b25694b2e9031203dae987afbccfe2"><div class="ttname"><a href="a03188.html#a42b25694b2e9031203dae987afbccfe2">Createpxs</a></div><div class="ttdeci">PXSTATE Createpxs(FNDDERESPONSE fnResponse, HANDLE hClient, HANDLE hServer, PINTDDEINFO pIntDdeInfo, DWORD flags)</div><div class="ttdoc">Createpxs</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01547">kernel/ddetrack.c:1547</a></div></div>
<div class="ttc" id="aa02997_html_a58f16a370e530f5aa0a5d4abf2573627"><div class="ttname"><a href="a02997.html#a58f16a370e530f5aa0a5d4abf2573627">tagXSTATE::hClient</a></div><div class="ttdeci">HANDLE hClient</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04683">userk.h:4683</a></div></div>
<div class="ttc" id="aa02989_html"><div class="ttname"><a href="a02989.html">tagDDEIMP</a></div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04656">userk.h:4656</a></div></div>
<div class="ttc" id="aa02037_html_aebb1baff167483debcd4de699303c47e"><div class="ttname"><a href="a02037.html#aebb1baff167483debcd4de699303c47e">tagDDEPACK::uiLo</a></div><div class="ttdeci">UINT uiLo</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00013">ddetrack.h:13</a></div></div>
<div class="ttc" id="aa00338_html_a5a18de9efdf6169f6aec74260c139d63"><div class="ttname"><a href="a00338.html#a5a18de9efdf6169f6aec74260c139d63">XS_GIVEBACKONNACK</a></div><div class="ttdeci">#define XS_GIVEBACKONNACK</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00057">ddetrack.h:57</a></div></div>
<div class="ttc" id="aa00338_html_a56ea24ff44220334d5b0f2fb34fbfdf7"><div class="ttname"><a href="a00338.html#a56ea24ff44220334d5b0f2fb34fbfdf7">XS_UNICODE</a></div><div class="ttdeci">#define XS_UNICODE</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00059">ddetrack.h:59</a></div></div>
<div class="ttc" id="aa00338_html_ae8a042e8f11aa1922d2f1c4e5598d587"><div class="ttname"><a href="a00338.html#ae8a042e8f11aa1922d2f1c4e5598d587">XS_FREEPXS</a></div><div class="ttdeci">#define XS_FREEPXS</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00052">ddetrack.h:52</a></div></div>
<div class="ttc" id="aa02705_html_ae07f487208abfbf55a3d620391466345"><div class="ttname"><a href="a02705.html#ae07f487208abfbf55a3d620391466345">tagPUBOBJ::pid</a></div><div class="ttdeci">W32PID pid</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00024">kernel/ddetrack.c:24</a></div></div>
<div class="ttc" id="aa02993_html_a6d3a1b93d32150526f85978a9a76101e"><div class="ttname"><a href="a02993.html#a6d3a1b93d32150526f85978a9a76101e">tagDDECONV::pddei</a></div><div class="ttdeci">struct tagDDEIMP * pddei</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04673">userk.h:4673</a></div></div>
<div class="ttc" id="aa02993_html"><div class="ttname"><a href="a02993.html">tagDDECONV</a></div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04663">userk.h:4663</a></div></div>
<div class="ttc" id="aa00899_html_a0fc61225a7d3f9950b01c459dad66f4b"><div class="ttname"><a href="a00899.html#a0fc61225a7d3f9950b01c459dad66f4b">PXSTATE</a></div><div class="ttdeci">struct tagXSTATE * PXSTATE</div></div>
<div class="ttc" id="aa02997_html_a36fe11d5a7a27923af9b2899a24e5464"><div class="ttname"><a href="a02997.html#a36fe11d5a7a27923af9b2899a24e5464">tagXSTATE::hServer</a></div><div class="ttdeci">HANDLE hServer</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04684">userk.h:4684</a></div></div>
<div class="ttc" id="aa02045_html_a09d5dfefe6330b1318cc2c716d5c07e0"><div class="ttname"><a href="a02045.html#a09d5dfefe6330b1318cc2c716d5c07e0">tagINTDDEINFO::hIndirect</a></div><div class="ttdeci">HANDLE hIndirect</div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00034">ddetrack.h:34</a></div></div>
<div class="ttc" id="aa03188_html_a42d65ac379b1f0187421a7bd1f19d4ac"><div class="ttname"><a href="a03188.html#a42d65ac379b1f0187421a7bd1f19d4ac">xxxCopyAckIn</a></div><div class="ttdeci">PINTDDEINFO xxxCopyAckIn(PDWORD pmessage, LPLONG plParam, PDDECONV pDdeConv)</div></div>
<div class="ttc" id="aa03188_html_a012998a925dcedadcacca4505c103d03"><div class="ttname"><a href="a03188.html#a012998a925dcedadcacca4505c103d03">xxxCopyDDEOut</a></div><div class="ttdeci">HANDLE xxxCopyDDEOut(PINTDDEINFO pIntDdeInfo, PHANDLE phDirect)</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l01975">kernel/ddetrack.c:1975</a></div></div>
<div class="ttc" id="aa02041_html"><div class="ttname"><a href="a02041.html">tagDDE_DATA</a></div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00017">ddetrack.h:17</a></div></div>
<div class="ttc" id="aa03188_html_ac75933e505a4fccbfea17fc42cb1cb4e"><div class="ttname"><a href="a03188.html#ac75933e505a4fccbfea17fc42cb1cb4e">xxxRequestAck</a></div><div class="ttdeci">FNDDERESPONSE xxxRequestAck</div><div class="ttdef"><b>Definition:</b> <a href="a03188_source.html#l00047">kernel/ddetrack.c:47</a></div></div>
<div class="ttc" id="aa02985_html"><div class="ttname"><a href="a02985.html">tagFREELIST</a></div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l04650">userk.h:4650</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_4e091ed8704426a7a4980368ba259fde.html">git</a></li><li class="navelem"><a class="el" href="dir_cd70cb5eb491250157f2d55d3ff4b13e.html">backup</a></li><li class="navelem"><a class="el" href="dir_ba2b673b566ba104b956abdc6dec0552.html">org</a></li><li class="navelem"><a class="el" href="dir_5bb0003d7907b45051943541418399f5.html">ntuser</a></li><li class="navelem"><a class="el" href="dir_2a0a56546b70a0973705719e6a88eab3.html">kernel</a></li><li class="navelem"><a class="el" href="a03188.html">ddetrack.c</a></li>
    <li class="footer">制作者
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
